feat: Sync latest templates from blackroad-sandbox

 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Alexa Louise
2025-12-12 01:38:14 -06:00
committed by Your Name
parent 806c200ddd
commit d9c4a93cf0
30 changed files with 8732 additions and 0 deletions

318
templates/SCRIPT-TEMPLATE.sh Executable file
View File

@@ -0,0 +1,318 @@
#!/usr/bin/env bash
# ============================================================================
# BlackRoad OS - Proprietary Software
# Copyright (c) 2025 BlackRoad OS, Inc. / Alexa Louise Amundson
# All Rights Reserved.
# ============================================================================
#
# [Script Name]
# [One-line description of what this script does]
#
# Usage:
# ./script-name.sh # Interactive menu mode
# ./script-name.sh [command] [args] # Direct command mode
# ./script-name.sh --help # Show help
#
# Examples:
# ./script-name.sh deploy # Deploy service
# ./script-name.sh status # Check status
# ./script-name.sh logs # View logs
set -euo pipefail
# =============================================================================
# Configuration
# =============================================================================
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="${SCRIPT_DIR}"
LOG_FILE="${PROJECT_ROOT}/script-name.log"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# =============================================================================
# Helper Functions
# =============================================================================
log() {
echo -e "${GREEN}${NC} $1"
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}
error() {
echo -e "${RED}${NC} $1" >&2
echo "[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $1" >> "$LOG_FILE"
}
warn() {
echo -e "${YELLOW}${NC} $1"
echo "[$(date +'%Y-%m-%d %H:%M:%S')] WARN: $1" >> "$LOG_FILE"
}
info() {
echo -e "${BLUE}${NC} $1"
}
# Check if command exists
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# Check prerequisites
check_prerequisites() {
log "Checking prerequisites..."
local missing=0
if ! command_exists "python3"; then
error "python3 not found"
missing=1
fi
if ! command_exists "git"; then
error "git not found"
missing=1
fi
if [ $missing -eq 1 ]; then
error "Missing required dependencies"
exit 1
fi
log "All prerequisites met"
}
# =============================================================================
# Command Functions
# =============================================================================
cmd_deploy() {
log "Starting deployment..."
# Example deployment steps
cd "$PROJECT_ROOT"
# Pull latest code
log "Pulling latest code..."
git pull origin main
# Install dependencies
log "Installing dependencies..."
pip3 install -r requirements.txt
# Deploy to platform
log "Deploying to platform..."
railway up --service service-name
# Verify deployment
log "Verifying deployment..."
sleep 5
railway status
log "Deployment complete!"
}
cmd_status() {
log "Checking status..."
# Check local services
info "Local services:"
pgrep -f "python3.*blackroad" | while read pid; do
echo " PID $pid: $(ps -p $pid -o command=)"
done
# Check Railway
if command_exists "railway"; then
info "Railway status:"
railway status
fi
# Check health endpoints
info "Health checks:"
curl -sf http://localhost:8000/health && echo " ✅ Local API" || echo " ❌ Local API"
curl -sf https://api.blackroad.io/health && echo " ✅ Production API" || echo " ❌ Production API"
}
cmd_logs() {
log "Viewing logs..."
# Show local log
if [ -f "$LOG_FILE" ]; then
tail -n 50 "$LOG_FILE"
fi
# Show Railway logs if available
if command_exists "railway"; then
info "Railway logs:"
railway logs --tail 50
fi
}
cmd_start() {
log "Starting services..."
cd "$PROJECT_ROOT"
# Start service in background
PORT=8000 python3 blackroad-service.py &
# Wait for startup
sleep 2
# Verify
curl -sf http://localhost:8000/health && log "Service started successfully" || error "Service failed to start"
}
cmd_stop() {
log "Stopping services..."
# Kill all matching processes
pkill -f "python3.*blackroad-service" || warn "No processes found"
log "Services stopped"
}
cmd_test() {
log "Running tests..."
cd "$PROJECT_ROOT"
# Run unit tests
pytest -m unit -v
# Run integration tests
pytest -m integration -v
log "Tests complete"
}
cmd_clean() {
log "Cleaning up..."
cd "$PROJECT_ROOT"
# Remove cache files
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
find . -type f -name "*.pyc" -delete 2>/dev/null || true
# Remove log files
rm -f "$LOG_FILE"
log "Cleanup complete"
}
# =============================================================================
# Menu Functions
# =============================================================================
show_menu() {
echo ""
echo "╔════════════════════════════════════════╗"
echo "║ [Service Name] Management ║"
echo "╚════════════════════════════════════════╝"
echo ""
echo "Commands:"
echo " 1) deploy - Deploy to production"
echo " 2) status - Check service status"
echo " 3) logs - View logs"
echo " 4) start - Start local service"
echo " 5) stop - Stop local service"
echo " 6) test - Run tests"
echo " 7) clean - Clean up files"
echo " q) quit - Exit"
echo ""
}
interactive_menu() {
while true; do
show_menu
read -rp "Choose command: " choice
case $choice in
1|deploy) cmd_deploy ;;
2|status) cmd_status ;;
3|logs) cmd_logs ;;
4|start) cmd_start ;;
5|stop) cmd_stop ;;
6|test) cmd_test ;;
7|clean) cmd_clean ;;
q|quit) log "Goodbye!"; exit 0 ;;
*) error "Invalid choice: $choice" ;;
esac
echo ""
read -rp "Press Enter to continue..."
done
}
# =============================================================================
# Help Function
# =============================================================================
show_help() {
cat <<EOF
[Script Name] - [Description]
Usage:
$0 [command] [args]
Commands:
deploy Deploy to production
status Check service status
logs View logs
start Start local service
stop Stop local service
test Run tests
clean Clean up files
menu Show interactive menu (default)
help Show this help message
Examples:
$0 # Interactive menu mode
$0 deploy # Deploy to production
$0 status # Check status
$0 logs # View logs
Environment Variables:
RAILWAY_TOKEN Railway API token (required for deploy)
PORT Service port (default: 8000)
For more information, see README.md
EOF
}
# =============================================================================
# Main Script Logic
# =============================================================================
main() {
# Check prerequisites
check_prerequisites
# Handle command
case "${1:-menu}" in
deploy) cmd_deploy ;;
status) cmd_status ;;
logs) cmd_logs ;;
start) cmd_start ;;
stop) cmd_stop ;;
test) cmd_test ;;
clean) cmd_clean ;;
menu|"") interactive_menu ;;
-h|--help|help) show_help ;;
*)
error "Unknown command: $1"
echo ""
show_help
exit 1
;;
esac
}
# Run main function
main "$@"