# GoTask Development Utilities
# Tools and cookie cutters for coding, testing, and maintaining task files

version: '3'

tasks:
  default:
    desc: 'Show available GoTask utilities'
    aliases: [help, h]
    silent: true
    cmds:
      - |
        # Color codes
        GREEN='\033[0;32m'
        YELLOW='\033[0;33m'
        BOLD='\033[1m'
        NC='\033[0m'

        echo -e "${BOLD}GoTask Development Utilities${NC}"
        echo ""
        echo "Command                            Alias     Description                              Examples"
        echo "───────────────────────────────────────────────────────────────────────────────────────────────────"
        echo -e "${BOLD}Task Development:${NC}"
        echo -e "  ${GREEN}task gotask:format${NC}               ${YELLOW}f${NC}         Format default task in Taskfile"
        echo -e "  ${GREEN}task gotask:new:task${NC}             ${YELLOW}nt${NC}        Create new task in Taskfile.yml"
        echo -e "  ${GREEN}task gotask:new:script${NC}           ${YELLOW}ns${NC}        Create new TypeScript task script"
        echo -e "  ${GREEN}task gotask:validate${NC}             ${YELLOW}v${NC}         Validate all Taskfile.yml syntax"
        echo -e "  ${GREEN}task gotask:deps:check${NC}           ${YELLOW}dc${NC}        Check for missing task dependencies"
        echo ""
        echo -e "${BOLD}Setup & Configuration:${NC}"
        echo -e "  ${GREEN}task gotask:setup:extensions${NC}     ${YELLOW}se${NC}        Install recommended VSCode extensions"
        echo ""
        echo -e "${BOLD}Documentation:${NC}"
        echo -e "  ${GREEN}task gotask:docs:generate${NC}        ${YELLOW}dg${NC}        Generate task documentation"
        echo -e "  ${GREEN}task gotask:docs:view${NC}            ${YELLOW}dv${NC}        View best practices guide"
        echo -e "  ${GREEN}task gotask:docs:edit${NC}            ${YELLOW}de${NC}        Edit best practices guide"
        echo ""
        echo -e "${BOLD}Templates:${NC}"
        echo -e "  ${GREEN}task gotask:template:basic${NC}       ${YELLOW}tb${NC}        Generate basic task template"
        echo -e "  ${GREEN}task gotask:template:build${NC}       ${YELLOW}tbu${NC}       Generate build task template"
        echo -e "  ${GREEN}task gotask:template:test${NC}        ${YELLOW}tt${NC}        Generate test task template"

  format:
    desc: Format default task in Taskfile
    aliases: [f]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/format-default.ts {{.CLI_ARGS}}

  new:task:
    desc: Create a new task in Taskfile.yml
    aliases: [nt]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/new-task.ts {{.CLI_ARGS}}

  new:script:
    desc: Create a new TypeScript task script
    aliases: [ns]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/new-script.ts {{.CLI_ARGS}}

  validate:
    desc: Validate all Taskfile.yml syntax
    aliases: [v]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/validate-taskfiles.ts

  deps:check:
    desc: Check for missing task dependencies
    aliases: [dc]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/check-deps.ts

  setup:extensions:
    desc: Install recommended VSCode/Cursor extensions
    aliases: [se]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/setup-vscode-extensions.ts

  docs:generate:
    desc: Generate task documentation
    aliases: [dg]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/generate-docs.ts

  docs:view:
    desc: View gotask best practices guide
    aliases: [dv]
    silent: true
    cmds:
      - |
        if command -v bat &> /dev/null; then
          bat src/tasks/gotask/docs/best-practices.md
        elif command -v less &> /dev/null; then
          less src/tasks/gotask/docs/best-practices.md
        else
          cat src/tasks/gotask/docs/best-practices.md
        fi

  docs:edit:
    desc: Edit gotask best practices guide
    aliases: [de]
    silent: true
    cmds:
      - ${EDITOR:-code} src/tasks/gotask/docs/best-practices.md

  template:basic:
    desc: Generate basic task template
    aliases: [tb]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/templates/basic.ts {{.CLI_ARGS}}

  template:build:
    desc: Generate build task template
    aliases: [tbu]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/templates/build.ts {{.CLI_ARGS}}

  template:test:
    desc: Generate test task template
    aliases: [tt]
    silent: true
    cmds:
      - bun run {{.TASKFILE_DIR}}/../src/tasks/gotask/templates/test.ts {{.CLI_ARGS}}
