Updated pm-task.
This commit is contained in:
104
pm-task
104
pm-task
@@ -37,54 +37,95 @@ function subBuild() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# List available projects in a workspace and let user choose one.
|
||||||
|
# Arguments: $1 = workspace path (optional, defaults to current host's workspace)
|
||||||
|
# Returns: Sets WORKSPACE_CHOICE var to selected project name or empty string
|
||||||
|
function subListProjects() {
|
||||||
|
local workspace="$1"
|
||||||
|
local projects=()
|
||||||
|
|
||||||
|
# Get list of subdirectories (excluding special dirs)
|
||||||
|
if [ -d "$workspace" ]; then
|
||||||
|
while IFS= read -r -d '' dir; do
|
||||||
|
local basename=$(basename "$dir")
|
||||||
|
# Skip hidden dirs and common non-project dirs
|
||||||
|
if [[ ! "$basename" =~ ^\. ]] && [[ "$basename" != "README"* ]]; then
|
||||||
|
projects+=("$basename")
|
||||||
|
fi
|
||||||
|
done < <(find "$workspace" -mindepth 1 -maxdepth 1 -type d -print0 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Store projects in a global array
|
||||||
|
PROJECTS=("${projects[@]}")
|
||||||
|
}
|
||||||
|
|
||||||
function subGotoWorkspace() {
|
function subGotoWorkspace() {
|
||||||
|
local workspace=""
|
||||||
|
|
||||||
|
# Determine workspace path based on hostname
|
||||||
case $HOSTNAME in
|
case $HOSTNAME in
|
||||||
Eighty)
|
Eighty)
|
||||||
if [ $1 ]; then
|
workspace="$HOME/docker"
|
||||||
cd $HOME/docker/$1
|
|
||||||
else
|
|
||||||
cd $HOME/docker
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
HiveDC)
|
HiveDC)
|
||||||
if [ $1 ]; then
|
workspace="/mnt/workspace/docker"
|
||||||
cd /mnt/workspace/docker/$1
|
|
||||||
else
|
|
||||||
cd /mnt/workspace/docker
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
hivegcp)
|
hivegcp)
|
||||||
if [ $1 ]; then
|
workspace="$HOME/docker"
|
||||||
cd $HOME/docker/$1
|
|
||||||
else
|
|
||||||
cd $HOME/docker
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
Podman)
|
Podman)
|
||||||
if [ $1 ]; then
|
workspace="/mnt/workspace/podman"
|
||||||
cd /mnt/workspace/podman/$1
|
|
||||||
else
|
|
||||||
cd /mnt/workspace/podman
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
HivePM)
|
HivePM)
|
||||||
if [ $1 ]; then
|
workspace="/mnt/workspace/podman"
|
||||||
cd /mnt/workspace/podman/$1
|
|
||||||
else
|
|
||||||
cd /mnt/workspace/podman
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
libpodman)
|
libpodman)
|
||||||
if [ $1 ]; then
|
workspace="/podman"
|
||||||
cd /podman/$1
|
|
||||||
else
|
|
||||||
cd /podman
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo Unrecognized host: $HOSTNAME
|
echo "Unrecognized host: $HOSTNAME"
|
||||||
|
return 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# If no argument provided, list projects and let user choose
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
PROJECTS=()
|
||||||
|
subListProjects "$workspace"
|
||||||
|
|
||||||
|
if [ ${#PROJECTS[@]} -eq 0 ]; then
|
||||||
|
echo "No projects found in $workspace"
|
||||||
|
cd "$workspace"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Available projects in $workspace:"
|
||||||
|
local i=1
|
||||||
|
for project in "${PROJECTS[@]}"; do
|
||||||
|
echo " [$i] $project"
|
||||||
|
((i++))
|
||||||
|
done
|
||||||
|
echo " [0] Cancel"
|
||||||
|
|
||||||
|
read -ei 1 -p "Choose a project [1-${#PROJECTS[@]}]: " choice
|
||||||
|
if [[ ! "$choice" =~ ^[0-9]+$ ]] || [ "$choice" -lt 0 ] || [ "$choice" -gt ${#PROJECTS[@]} ]; then
|
||||||
|
echo "Invalid choice. Canceling."
|
||||||
|
cd "$workspace"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$choice" -eq 0 ]; then
|
||||||
|
echo "Canceled."
|
||||||
|
cd "$workspace"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
workspace="$workspace/${PROJECTS[$((choice-1))]}"
|
||||||
|
else
|
||||||
|
workspace="$workspace/$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$workspace"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Application logs streaming (single log).
|
# Application logs streaming (single log).
|
||||||
@@ -151,6 +192,7 @@ function subHelp() {
|
|||||||
echo " stats Display container resource usage statistics."
|
echo " stats Display container resource usage statistics."
|
||||||
echo " up, start Start the Docker Compose project."
|
echo " up, start Start the Docker Compose project."
|
||||||
echo " bash|rsh|sh Access a shell in the running container."
|
echo " bash|rsh|sh Access a shell in the running container."
|
||||||
|
echo " (no command) List available projects and choose one to navigate to."
|
||||||
}
|
}
|
||||||
|
|
||||||
# Task
|
# Task
|
||||||
|
|||||||
Reference in New Issue
Block a user