Skip to content
Snippets Groups Projects
Commit cf2964d9 authored by David Beniamine's avatar David Beniamine
Browse files

Merge branch 'add-info-cli' into 'master'

Add info cli tool

See merge request !5
parents b7acc28f a776f0b1
No related branches found
No related tags found
1 merge request!5Add info cli tool
...@@ -95,6 +95,142 @@ case $action in ...@@ -95,6 +95,142 @@ case $action in
;; ;;
"help") "help")
usage usage
;;
"info")
echo "** Info about your Dolibarr instance **"
# Date and time
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# Hostname
host=$(hostname)
# Dolibarr instance name (parent of dolibarr_src)
instance_path=$(realpath dolibarr_src/.. 2>/dev/null)
instance_name=$(basename "$instance_path")
echo -e "Generated at: $timestamp"
echo -e "Machine: $host"
echo -e "Instance: $instance_name"
echo -e "Instance path: $instance_path\n"
## Docker deployment
if [ "$(is_docker)" -eq 1 ]; then
echo "Docker deployment detected."
echo "Service: $APP_SERVICE"
echo "Database Service: $DB_SERVICE"
echo "User: $user"
echo "Database: $db"
echo "Document Path: $document_path"
else
echo "Non-Docker deployment detected."
echo "Please check your configuration manually."
fi
## PHP Version
if command -v php > /dev/null; then
php_version=$(php -r 'echo PHP_VERSION;')
echo "PHP Version: $php_version"
else
echo "PHP is not installed or not found in PATH."
fi
## Dolibarr Version
if [ -f "dolibarr_src/htdocs/install/version.php" ]; then
version=$(grep -oP '\$dolibarr_version\s*=\s*"\K[^"]+' dolibarr_src/htdocs/install/version.php)
echo "Dolibarr Version: $version"
else
echo "Dolibarr version file not found."
fi
## Dolibarr branch
if [ -d "dolibarr_src/.git" ]; then
cd dolibarr_src || exit
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
upstream=$(git rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>/dev/null)
status="${RED}No upstream${NC}"
if [ -n "$upstream" ]; then
remote=$(echo "$upstream" | cut -d'/' -f1)
git fetch "$remote" > /dev/null 2>&1
behind=$(git rev-list --count HEAD.."$upstream" 2>/dev/null)
if [ "$behind" -gt 0 ]; then
status="${YELLOW}Pull needed${NC}"
else
status="${GREEN}Up to date${NC}"
fi
fi
echo -e "Dolibarr Branch: $branch [$status]"
cd - > /dev/null || exit
else
echo "Dolibarr source directory is not a Git repository."
fi
## Modules
BASE_DIR="dolibarr_src/htdocs/custom"
if [ -d "$BASE_DIR" ]; then
echo -e "\nCustom modules directory: $BASE_DIR\n"
echo "Modules in custom directory:"
printf "%-45s | %-20s | %-12s | %-10s | %s\n" "Module" "Git Branch" "Last Commit" "Commit ID" "Up to date"
printf "%-45s-+-%-20s-+-%-12s-+-%-10s-+-%s\n" \
"$(printf '%.0s-' {1..45})" "$(printf '%.0s-' {1..20})" \
"$(printf '%.0s-' {1..12})" "$(printf '%.0s-' {1..10})" "$(printf '%.0s-' {1..6})"
find "$BASE_DIR" -maxdepth 1 -mindepth 1 -type d ! -name '.*' | sort | while read -r dir; do
module_name=$(basename "$dir")
if [ -d "$dir/.git" ]; then
branch=$(git -C "$dir" rev-parse --abbrev-ref HEAD 2>/dev/null)
branch=${branch:-"—"}
branch_short=$(printf "%-20.20s" "$branch")
commit_date=$(git -C "$dir" log -1 --format="%cd" --date=short 2>/dev/null)
commit_date=${commit_date:-"—"}
commit_id=$(git -C "$dir" rev-parse --short=8 HEAD 2>/dev/null)
commit_id=${commit_id:-"—"}
upstream=$(git -C "$dir" rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>/dev/null)
if [ -n "$upstream" ]; then
git -C "$dir" fetch --quiet 2>/dev/null
behind=$(git -C "$dir" rev-list --count HEAD.."$upstream" 2>/dev/null)
if [ "$behind" -gt 0 ]; then
pull_status="${YELLOW}Pull needed${NC}"
else
pull_status="${GREEN}Up to date${NC}"
fi
else
pull_status="${RED}No upstream${NC}"
fi
printf "%-45s | %-20s | %-12s | %-10s | %b\n" \
"$module_name" "$branch_short" "$commit_date" "$commit_id" "$pull_status"
else
printf "%-45s | %-20s | %-12s | %-10s | %b\n" \
"$module_name" "-" "-" "-" "${RED}Not a Git repo${NC}"
fi
done
else
echo "❌ Custom modules directory not found: $BASE_DIR"
fi
;; ;;
"logs") "logs")
set -x set -x
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment