- Update ToolboxStack/output/toolbox-base/Dockerfile with latest container settings - Update ToolboxStack/output/toolbox-base/aqua.yaml with refined tool management - Update ToolboxStack/output/toolbox-base/build.sh with improved build process - Update ToolboxStack/output/toolbox-base/docker-compose.yml with enhanced service definitions This enhances the base developer environment configuration.
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| # Test script to verify all tools are working properly in the toolbox-base image
 | |
| 
 | |
| IMAGE_NAME="${IMAGE_NAME_OVERRIDE:-tsysdevstack-toolboxstack-toolbox-base:release-current}"
 | |
| 
 | |
| echo "🧪 Testing all tools in ${IMAGE_NAME}"
 | |
| 
 | |
| # Function to test a command
 | |
| test_cmd() {
 | |
|     local cmd="$1"
 | |
|     local description="$2"
 | |
|     
 | |
|     echo -n "Testing ${cmd} (${description})... "
 | |
|     
 | |
|     if docker run --rm "${IMAGE_NAME}" "${cmd}" --version >/dev/null 2>&1; then
 | |
|         echo "✅ PASS"
 | |
|         return 0
 | |
|     else
 | |
|         echo "❌ FAIL"
 | |
|         return 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # Function to test a command with specific args
 | |
| test_cmd_args() {
 | |
|     local cmd="$1"
 | |
|     local args="$2"
 | |
|     local description="$3"
 | |
|     
 | |
|     echo -n "Testing ${cmd} ${args} (${description})... "
 | |
|     
 | |
|     if docker run --rm "${IMAGE_NAME}" "${cmd}" ${args} >/dev/null 2>&1; then
 | |
|         echo "✅ PASS"
 | |
|         return 0
 | |
|     else
 | |
|         echo "❌ FAIL"
 | |
|         return 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # Counter for tracking results
 | |
| PASSED=0
 | |
| FAILED=0
 | |
| 
 | |
| # Test core tools
 | |
| echo "🔍 Testing core tools..."
 | |
| 
 | |
| test_cmd "zsh" "Z shell" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "git" "Git version control" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "curl" "cURL utility" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "jq" "JSON processor" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "fish" "Fish shell" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "fzf" "Fuzzy finder" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "bat" "Cat clone with wings" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "fd" "Simple, fast alternative to find" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "rg" "Ripgrep - line-oriented search tool" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "htop" "Interactive process viewer" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "btop" "Modern and colorful terminal monitor" && ((PASSED++)) || ((FAILED++))
 | |
| 
 | |
| # Test aqua installed tools
 | |
| echo "🔧 Testing aqua installed tools..."
 | |
| 
 | |
| test_cmd "gh" "GitHub CLI" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "lazygit" "Simple terminal UI for git commands" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "direnv" "Unclutter your .profile" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "delta" "Syntax-highlighting pager for git, diff, and grep output" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "zoxide" "Smarter cd command" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "just" "Just a command runner" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "yq" "Portable command-line YAML processor" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "xh" "Friendly and fast tool for sending HTTP requests" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "curlie" "The power of curl, the ease of use of httpie" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "chezmoi" "Manage your dotfiles across multiple machines" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "shfmt" "Shell formatter" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "shellcheck" "Shell script analysis tool" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "hadolint" "Dockerfile linter" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "uv" "Python package installer and resolver" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "watchexec" "Execute commands in response to file modifications" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "tea" "Gitea CLI" && ((PASSED++)) || ((FAILED++))
 | |
| 
 | |
| # Test AI CLI tools
 | |
| echo "🤖 Testing AI CLI tools..."
 | |
| 
 | |
| test_cmd_args "code" "--version" "just-every/code AI CLI" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd_args "qwen" "--version" "QwenLM/qwen-code AI CLI" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd_args "gemini" "--version" "google-gemini/gemini-cli AI CLI" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd_args "codex" "--version" "openai/codex AI CLI" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd_args "opencode" "--version" "sst/opencode AI CLI" && ((PASSED++)) || ((FAILED++))
 | |
| 
 | |
| # Test additional tools
 | |
| echo "🧰 Testing additional tools..."
 | |
| 
 | |
| test_cmd "starship" "Cross-shell prompt" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd "mise" "Polyglot runtime manager" && ((PASSED++)) || ((FAILED++))
 | |
| test_cmd_args "aqua" "--version" "Declarative CLI Version Manager" && ((PASSED++)) || ((FAILED++))
 | |
| 
 | |
| # Summary
 | |
| echo ""
 | |
| echo "📊 Test Results:"
 | |
| echo "   Passed: ${PASSED}"
 | |
| echo "   Failed: ${FAILED}"
 | |
| echo "   Total:  $((PASSED + FAILED))"
 | |
| 
 | |
| if [[ "${FAILED}" -eq 0 ]]; then
 | |
|     echo "🎉 All tests passed!"
 | |
|     exit 0
 | |
| else
 | |
|     echo "💥 ${FAILED} tests failed!"
 | |
|     exit 1
 | |
| fi |