\n- Updated Dockerfiles in both toolbox-base and toolbox-template - Modified build scripts and docker-compose configurations - Added new audit tools and documentation files - Created new toolbox-DocStack and toolbox-QADocker implementations - Updated README and maintenance documentation
112 lines
4.4 KiB
Bash
Executable File
112 lines
4.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Test script to verify all tools are working properly in the toolbox-template
|
|
|
|
IMAGE_NAME="${IMAGE_NAME_OVERRIDE:-tsysdevstack-toolboxstack-toolbox-DocStack}"
|
|
|
|
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 inherited from base
|
|
echo "🔍 Testing core tools inherited from base..."
|
|
|
|
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 inherited from base
|
|
echo "🔧 Testing aqua installed tools inherited from base..."
|
|
|
|
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 inherited from base
|
|
echo "🤖 Testing AI CLI tools inherited from base..."
|
|
|
|
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 inherited from base
|
|
echo "🧰 Testing additional tools inherited from base..."
|
|
|
|
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 |