Initial commit and default settings
This commit is contained in:
commit
1e17c19038
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BASE="$0"
|
||||||
|
SHARE_DIR=""
|
||||||
|
SOURCE_DIR=""
|
||||||
|
|
||||||
|
compress="false"
|
||||||
|
expire="false"
|
||||||
|
expire_time="$(date -Iseconds -d +7days)"
|
||||||
|
shorten="false"
|
||||||
|
|
||||||
|
print_usage() {
|
||||||
|
echo 'usage: mkshare [-c] [-e [ISO-8601]] [-h] [-s] <file or directory>
|
||||||
|
|
||||||
|
mkshare - create symlink, output sharable link and optionally set expire timer
|
||||||
|
|
||||||
|
common options:
|
||||||
|
-h show this help message and exit
|
||||||
|
-c compress target using zip and link to zip instead
|
||||||
|
-e set expire time using ISO-8601 string or default to 7 days from creation
|
||||||
|
-s shorten link to a random string in root share folder
|
||||||
|
e.g. https://fanyx.xyz/s/DkVbDMbN4ZpSYx08
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
# if no arguments given, print usage and exit
|
||||||
|
[ $# -eq 0 ] && print_usage && exit 1
|
||||||
|
|
||||||
|
# parse flags
|
||||||
|
# c: compress
|
||||||
|
# use zip to compress files or directories and put link to created zip file
|
||||||
|
# e: expire
|
||||||
|
# use ISO-8061 datetime string to set expiry date
|
||||||
|
# default expiry date is 7 days from creation
|
||||||
|
# h: help
|
||||||
|
# print usage
|
||||||
|
# s: shorten
|
||||||
|
# generate random string of characters using `head /dev/urandom | tr -dc A-Za-z0-9 | head -c16`
|
||||||
|
|
||||||
|
while getopts ':cehs' flag; do
|
||||||
|
case "$flag" in
|
||||||
|
h) print_usage ;;
|
||||||
|
c)
|
||||||
|
compress="true"
|
||||||
|
;;
|
||||||
|
e)
|
||||||
|
if ! [ -z "${OPTARG}" ]; then
|
||||||
|
# set expire time to given date
|
||||||
|
# fail if not iso-8601
|
||||||
|
if ! date -d "${OPTARG}"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
expire_time="$(date -d "${OPTARG}" -Iseconds)"
|
||||||
|
else
|
||||||
|
# no expire time set
|
||||||
|
# default to 7 days
|
||||||
|
expire="true"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
shorten="true"
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
echo "Invalid option: -${OPTARG}"
|
||||||
|
echo
|
||||||
|
print_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
[ "${1:-}" = "--" ] && shift
|
||||||
|
|
Loading…
Reference in New Issue