mirror of
https://github.com/overleaf/toolkit.git
synced 2025-04-24 01:38:07 +02:00
57 lines
1.3 KiB
Bash
Executable file
57 lines
1.3 KiB
Bash
Executable file
#! /usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
function usage() {
|
|
echo "Usage: bin/backup-config [OPTIONS] [DESTINATION]"
|
|
echo ""
|
|
echo "Backup configuration files, to DESTINATION"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -m mode: zip | tar | copy (default=copy)"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo ""
|
|
echo " bin/backup-config -m zip ~/overleaf-config-backup.zip"
|
|
echo ""
|
|
echo " bin/backup-config -m tar ~/overleaf-config-backup.tar"
|
|
echo ""
|
|
echo " bin/backup-config -m copy ~/overleaf-config-backup"
|
|
echo ""
|
|
echo " bin/backup-config ~/overleaf-config-backup"
|
|
echo ""
|
|
}
|
|
|
|
function __main__() {
|
|
mode='copy'
|
|
|
|
while getopts "m:" opt
|
|
do
|
|
case $opt in
|
|
m ) mode="${OPTARG}" ;;
|
|
\?) usage && exit ;;
|
|
esac
|
|
done
|
|
shift $(( OPTIND -1 ))
|
|
|
|
if [[ "${1:-null}" == "null" ]] \
|
|
|| [[ "${1:-null}" == "help" ]] \
|
|
|| [[ "${1:-null}" == "--help" ]] ; then
|
|
usage && exit
|
|
fi
|
|
|
|
destination="$1"
|
|
|
|
if [[ "$mode" == "copy" ]]; then
|
|
cp -r config "$destination"
|
|
elif [[ "$mode" == "zip" ]]; then
|
|
zip -r "$destination" config
|
|
elif [[ "$mode" == "tar" ]]; then
|
|
tar -cf "$destination" config/*
|
|
else
|
|
echo "Error: unrecognized mode '$mode'"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
__main__ "$@"
|