generated from oci/template
it builds, but does it run?
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 16m30s
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 16m30s
This commit is contained in:
parent
d93ecd2627
commit
bfc790355a
10 changed files with 801 additions and 23 deletions
160
scripts/dev-helper.sh
Executable file
160
scripts/dev-helper.sh
Executable file
|
@ -0,0 +1,160 @@
|
|||
#!/bin/bash
|
||||
# Development helper script for FreeTAKServer Docker container
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Function to print colored output
|
||||
print_status() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Function to check if script exists and is executable
|
||||
check_script() {
|
||||
local script_path="$1"
|
||||
local script_name=$(basename "$script_path")
|
||||
|
||||
if [[ ! -f "$script_path" ]]; then
|
||||
print_error "Script $script_name not found at $script_path"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ! -x "$script_path" ]]; then
|
||||
print_warning "Script $script_name is not executable, fixing..."
|
||||
chmod +x "$script_path"
|
||||
fi
|
||||
|
||||
print_success "Script $script_name is ready"
|
||||
return 0
|
||||
}
|
||||
|
||||
# Function to validate scripts
|
||||
validate_scripts() {
|
||||
print_status "Validating scripts..."
|
||||
|
||||
local scripts=(
|
||||
"$PROJECT_DIR/scripts/install_freetak.sh"
|
||||
"$PROJECT_DIR/scripts/start_freetak.sh"
|
||||
"$PROJECT_DIR/scripts/healthcheck.sh"
|
||||
"$PROJECT_DIR/scripts/entrypoint.sh"
|
||||
)
|
||||
|
||||
local all_valid=true
|
||||
|
||||
for script in "${scripts[@]}"; do
|
||||
if ! check_script "$script"; then
|
||||
all_valid=false
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$all_valid" == true ]]; then
|
||||
print_success "All scripts are valid and executable"
|
||||
else
|
||||
print_error "Some scripts have issues"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to test script syntax
|
||||
test_syntax() {
|
||||
print_status "Testing script syntax..."
|
||||
|
||||
local scripts=(
|
||||
"$PROJECT_DIR/scripts/install_freetak.sh"
|
||||
"$PROJECT_DIR/scripts/start_freetak.sh"
|
||||
"$PROJECT_DIR/scripts/healthcheck.sh"
|
||||
"$PROJECT_DIR/scripts/entrypoint.sh"
|
||||
)
|
||||
|
||||
for script in "${scripts[@]}"; do
|
||||
local script_name=$(basename "$script")
|
||||
if bash -n "$script"; then
|
||||
print_success "Syntax check passed for $script_name"
|
||||
else
|
||||
print_error "Syntax check failed for $script_name"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to show script information
|
||||
show_info() {
|
||||
print_status "FreeTAKServer Docker Scripts Information"
|
||||
echo
|
||||
echo "Scripts directory: $PROJECT_DIR/scripts/"
|
||||
echo
|
||||
echo "Available scripts:"
|
||||
echo " install_freetak.sh - Installs FreeTAKServer using Ansible"
|
||||
echo " start_freetak.sh - Simple startup script"
|
||||
echo " entrypoint.sh - Main entrypoint with signal handling"
|
||||
echo " healthcheck.sh - Health check script"
|
||||
echo
|
||||
echo "Usage in Dockerfile:"
|
||||
echo " COPY scripts/ /opt/scripts/"
|
||||
echo " RUN chmod +x /opt/scripts/*.sh"
|
||||
echo
|
||||
}
|
||||
|
||||
# Function to show usage
|
||||
usage() {
|
||||
echo "Usage: $0 [COMMAND]"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " validate Validate all scripts exist and are executable"
|
||||
echo " test Test script syntax"
|
||||
echo " info Show information about scripts"
|
||||
echo " help Show this help message"
|
||||
echo
|
||||
echo "If no command is provided, 'validate' is run by default."
|
||||
}
|
||||
|
||||
# Main script logic
|
||||
main() {
|
||||
case "${1:-validate}" in
|
||||
validate)
|
||||
validate_scripts
|
||||
;;
|
||||
test)
|
||||
validate_scripts
|
||||
test_syntax
|
||||
;;
|
||||
info)
|
||||
show_info
|
||||
;;
|
||||
help|--help|-h)
|
||||
usage
|
||||
;;
|
||||
*)
|
||||
print_error "Unknown command: $1"
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Change to project directory
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# Run main function
|
||||
main "$@"
|
Loading…
Add table
Add a link
Reference in a new issue