Enhance project list display with descriptions and visual formatting
- Add colorful header with 📋 icon and cyan title - Display project descriptions (previously unused) - Add template-based icons: 🚀 content, 🔬 research, ⚙️ basic - Format output in aligned columns with colors - Include template type indicators in brackets - Add usage hint for better user experience - Improve error handling for missing jq The 'proj' command now provides rich, informative output instead of just listing project names. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
17f7812011
commit
cf177c060e
1 changed files with 29 additions and 2 deletions
|
|
@ -9,9 +9,36 @@ PROJECTS_JSON="$CONFIG_DIR/projects.json"
|
||||||
TEMPLATES_DIR="$(dirname "$0")/templates"
|
TEMPLATES_DIR="$(dirname "$0")/templates"
|
||||||
|
|
||||||
if [ -z "$PROJECT_NAME" ]; then
|
if [ -z "$PROJECT_NAME" ]; then
|
||||||
echo "Available projects:"
|
printf "📋 \033[1;36mAvailable Projects:\033[0m\n\n"
|
||||||
|
|
||||||
if [ -f "$PROJECTS_JSON" ]; then
|
if [ -f "$PROJECTS_JSON" ]; then
|
||||||
jq -r '.projects | keys[]' "$PROJECTS_JSON" 2>/dev/null || echo "No projects configured"
|
# Check if jq is available and JSON is valid
|
||||||
|
if ! command -v jq >/dev/null 2>&1; then
|
||||||
|
echo "Error: jq not found. Please install jq or run 'home-manager switch'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Parse and display projects with descriptions and icons
|
||||||
|
jq -r '.projects | to_entries[] | "\(.key)|\(.value.description)|\(.value.template)"' "$PROJECTS_JSON" 2>/dev/null | \
|
||||||
|
while IFS='|' read -r name desc template; do
|
||||||
|
# Assign icons based on template type
|
||||||
|
case "$template" in
|
||||||
|
"content") icon="🚀" ;;
|
||||||
|
"research") icon="🔬" ;;
|
||||||
|
"basic") icon="⚙️" ;;
|
||||||
|
*) icon="📁" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Format with consistent spacing
|
||||||
|
printf " %s \033[1;32m%-12s\033[0m %-35s \033[2m[%s]\033[0m\n" \
|
||||||
|
"$icon" "$name" "$desc" "$template"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "No projects configured"
|
||||||
|
else
|
||||||
|
printf "\n\033[2mUsage: proj <name> or just type the project name directly\033[0m\n"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "No projects configured - run 'home-manager switch' to generate config"
|
echo "No projects configured - run 'home-manager switch' to generate config"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue