-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathilma
More file actions
executable file
·75 lines (65 loc) · 1.89 KB
/
ilma
File metadata and controls
executable file
·75 lines (65 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
set -euo pipefail
ILMA_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
COMMANDS_DIR="$ILMA_DIR/commands"
show_main_help() {
cat <<EOF
Usage: ilma [OPTIONS] [PROJECT_PATH]
ilma [COMMAND] [OPTIONS]
Pack:
-b, --backup Create backup directory
-a, --archive Create compressed archive
-e, --encrypt Create encrypted archive
-r, --remote SERVER:/PATH Sync directly to remote server
Unpack:
-d, --decrypt Decrypt and optionally extract archive
-x, --extract Safely extract archive
Other commands:
backup Create backup (default)
-c, config Show resolved configuration
validate Validate config, dependencies, and connectivity
decrypt Decrypt GPG-encrypted archive
extract Safely extract archive (prevents tarbombs)
remote pull Run remote pull jobs from node manifests
Run "ilma backup --help" or "ilma COMMAND --help" for details.
EOF
}
command="${1:-}"
if [[ "$command" == "--help" || "$command" == "-h" ]]; then
show_main_help
exit 0
fi
case "$command" in
-c | --config)
shift
exec "$COMMANDS_DIR/config.sh" "$@"
;;
-d | --decrypt)
shift
exec "$COMMANDS_DIR/decrypt.sh" "$@"
;;
-x | --extract)
shift
exec "$COMMANDS_DIR/extract.sh" "$@"
;;
backup | config | validate | decrypt | extract | remote | pull)
shift
;;
*)
command="backup"
;;
esac
case "$command" in
backup) exec "$COMMANDS_DIR/backup.sh" "$@" ;;
config) exec "$COMMANDS_DIR/config.sh" "$@" ;;
validate) exec "$COMMANDS_DIR/validate.sh" "$@" ;;
decrypt) exec "$COMMANDS_DIR/decrypt.sh" "$@" ;;
extract) exec "$COMMANDS_DIR/extract.sh" "$@" ;;
remote) exec "$COMMANDS_DIR/remote.sh" remote "$@" ;;
pull) exec "$COMMANDS_DIR/remote.sh" pull "$@" ;;
*)
echo "Error: Unknown command '$command'" >&2
show_main_help
exit 1
;;
esac