63 lines
1.2 KiB
Bash
Executable File
63 lines
1.2 KiB
Bash
Executable File
#!@TERMUX_PREFIX@/bin/bash
|
|
set -e -u
|
|
|
|
export PREFIX=@TERMUX_PREFIX@
|
|
|
|
msg() {
|
|
echo "$@" >&2
|
|
}
|
|
|
|
show_usage() {
|
|
msg
|
|
msg "Usage: termux-backup [output file]"
|
|
msg
|
|
msg "Script for backing up Termux installation directory, \$PREFIX."
|
|
msg "It WILL NOT backup your home directory."
|
|
msg
|
|
msg "Backup is performed as TAR archive. Compression is determined"
|
|
msg "by output file extension. If file name is '-', then tarball is"
|
|
msg "written to stdout and is uncompressed."
|
|
msg
|
|
}
|
|
|
|
if [ $# -lt 1 ]; then
|
|
msg
|
|
msg "[!] Output file path is not specified."
|
|
show_usage
|
|
exit 1
|
|
fi
|
|
|
|
if [ $# -gt 1 ]; then
|
|
shift 1
|
|
msg
|
|
msg "[!] Got extra arguments: $@"
|
|
show_usage
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$PREFIX" ]; then
|
|
msg "[!] $PREFIX: directory does not exist."
|
|
exit 1
|
|
fi
|
|
|
|
case "$1" in
|
|
-?|-h|--help|--usage) show_usage; exit 0;;
|
|
*) BACKUP_FILE_PATH=$1;;
|
|
esac
|
|
|
|
if [ "$BACKUP_FILE_PATH" != "-" ]; then
|
|
CAN_AUTOCOMPRESS=yes
|
|
if [ -e "$BACKUP_FILE_PATH" ]; then
|
|
msg
|
|
msg "[!] Refusing to overwrite already existing file '$BACKUP_FILE_PATH'."
|
|
msg
|
|
exit 1
|
|
fi
|
|
else
|
|
CAN_AUTOCOMPRESS=
|
|
fi
|
|
|
|
tar --warning=no-file-ignored -f "$BACKUP_FILE_PATH" \
|
|
-c ${CAN_AUTOCOMPRESS+--auto-compress} \
|
|
-C "@TERMUX_BASE_DIR@" ./usr
|