88 lines
2.1 KiB
Bash
Executable File
88 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Meta command for Omarchy repository management
|
|
# Usage: ./bin/repo <command> [options]
|
|
|
|
set -e
|
|
|
|
# Get the directory of this script
|
|
SCRIPT_DIR=$(realpath "${BASH_SOURCE[0]%/*}")
|
|
BUILD_ROOT=$(realpath "$SCRIPT_DIR/..")
|
|
|
|
# Source common functions
|
|
source "$BUILD_ROOT/lib/message-helpers.sh"
|
|
|
|
# Setup logging
|
|
LOG_DIR="$BUILD_ROOT/logs"
|
|
mkdir -p "$LOG_DIR"
|
|
LOG_FILE="$LOG_DIR/repo.log"
|
|
|
|
# Show usage
|
|
show_usage() {
|
|
echo "Usage: $0 <command> [options]"
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " build Build AUR packages"
|
|
echo " update Update repository database"
|
|
echo " clean Clean old package versions"
|
|
echo " list List packages in repository"
|
|
echo " remove Remove a specific package"
|
|
echo " sync Sync repository to remote"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 build # Build all packages"
|
|
echo " $0 update --clean # Update database (clean rebuild)"
|
|
echo " $0 clean --dry-run # Preview cleanup"
|
|
echo " $0 list # List all packages"
|
|
echo " $0 remove package-name # Remove a package"
|
|
echo " $0 sync x86_64 # Sync to remote"
|
|
echo ""
|
|
echo "For command-specific help, use:"
|
|
echo " $0 <command> --help"
|
|
exit 0
|
|
}
|
|
|
|
# Check if no command provided
|
|
if [[ $# -eq 0 ]]; then
|
|
show_usage
|
|
fi
|
|
|
|
# Get command and shift arguments
|
|
COMMAND="$1"
|
|
shift
|
|
|
|
# Route to appropriate script with logging
|
|
case $COMMAND in
|
|
build)
|
|
"$SCRIPT_DIR/build" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
update)
|
|
"$SCRIPT_DIR/update-repo" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
clean)
|
|
"$SCRIPT_DIR/clean-repo" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
list)
|
|
"$SCRIPT_DIR/list-packages" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
remove)
|
|
"$SCRIPT_DIR/remove-package" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
sync)
|
|
"$SCRIPT_DIR/sync-repo" "$@" 2>&1 | tee "$LOG_FILE"
|
|
exit ${PIPESTATUS[0]}
|
|
;;
|
|
-h | --help | help)
|
|
show_usage
|
|
;;
|
|
*)
|
|
print_error "Unknown command: $COMMAND"
|
|
echo ""
|
|
show_usage
|
|
;;
|
|
esac
|