Skip to content

Instantly share code, notes, and snippets.

@p-sam
Last active July 11, 2021 19:18
Show Gist options
  • Save p-sam/9f2336e81bc16d724a97961ce937fcd1 to your computer and use it in GitHub Desktop.
Save p-sam/9f2336e81bc16d724a97961ce937fcd1 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -eo pipefail
function do_megatools() {
ACTION="$1"
shift
if command -v megatools &> /dev/null; then
megatools "$ACTION" "$@"
else
"mega$ACTION" "$@"
fi
}
function do_megatools_env() {
if [[ -n "$MEGA_USERNAME" ]] && [[ -n "$MEGA_PASSWORD" ]]; then
do_megatools "$@" --config /dev/stdin --no-ask-password <<EOF
[Login]
Username = $MEGA_USERNAME
Password = $MEGA_PASSWORD
EOF
else
do_megatools "$@" --no-ask-password
fi
}
function megatools_upload() {
MEGA_FILE="$1"
MEGA_ROOT_UPLOAD_PATH="${MEGA_UPLOAD_PATH%/}"
MEGA_ROOT_UPLOAD_PATH="/Root/${MEGA_ROOT_UPLOAD_PATH#/}"
if [[ ! -f "$MEGA_FILE" ]]; then
echo "$0: no such file: '$MEGA_FILE'" 1>&2
return 1
fi
if [[ -z "$MEGA_UPLOAD_NO_OVERWRITE" ]]; then
MEGA_FILENAME="$(basename "$MEGA_FILE")"
do_megatools_env rm "$MEGA_ROOT_UPLOAD_PATH/$MEGA_FILENAME" 2>/dev/null ||:
fi
if [[ -n "$MEGA_UPLOAD_SHOW_PROGRESS" ]]; then
do_megatools_env put --path "$MEGA_ROOT_UPLOAD_PATH" "$MEGA_FILE"
else
do_megatools_env put --no-progress --path "$MEGA_ROOT_UPLOAD_PATH" "$MEGA_FILE"
fi
}
for i in "$@"; do
megatools_upload "$i"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment