tmp: Add templates support, help text
This commit is contained in:
parent
022afcb4c0
commit
db8ece927f
53
tmp
53
tmp
@ -9,25 +9,62 @@
|
||||
# Define variables
|
||||
name="$(basename "$0" .sh)"
|
||||
tmpdir="$(mktemp -d)"
|
||||
|
||||
# Verify them
|
||||
[ -z ${tmpdir+x} ] && exit 2
|
||||
[ -z "$tmpdir" ] && exit 2
|
||||
|
||||
# Define functions
|
||||
function log() {
|
||||
[ -z ${1+x} ] && return 1
|
||||
log() {
|
||||
[ -z "$1" ] && return 1
|
||||
# shellcheck disable=1117
|
||||
printf "%b: %s\n" \
|
||||
"$name" \
|
||||
"$1"
|
||||
}
|
||||
function cleanup() {
|
||||
rm -rf "${tmpdir}"
|
||||
cleanup() {
|
||||
[ -z "$tmpdir" ] && exit 2
|
||||
log "Cleaning up \"$tmpdir\""
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
|
||||
# Handle args
|
||||
while getopts ":h" opt; do
|
||||
case $opt in
|
||||
h)
|
||||
cat << EOF
|
||||
Usage: $name [TEMPLATE]
|
||||
Create a temporary directory, copying the folder [TEMPLATE] from
|
||||
~/Templates/tmp, if it exists.
|
||||
|
||||
-h Show this help text
|
||||
|
||||
https://gitlab.com/rehashedsalt/bin
|
||||
EOF
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
log "Invaild argumenet: $OPTARG"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Copy in template directory
|
||||
if [ -n "$1" ]; then
|
||||
copydir="$HOME/Templates/tmp/$1"
|
||||
if [ -d "$copydir" ]; then
|
||||
log "Using template \"$1\""
|
||||
cp -r "$copydir"/* "$tmpdir"
|
||||
else
|
||||
log "Could not find template directory \"$copydir\""
|
||||
fi
|
||||
fi
|
||||
|
||||
trap "cleanup" EXIT
|
||||
# Do the do
|
||||
log "This folder will be removed when this shell exits"
|
||||
log "This directory will be removed when this shell exits"
|
||||
(
|
||||
cd "${tmpdir}" || exit 50
|
||||
cd "$tmpdir" || exit 50
|
||||
exec "$SHELL"
|
||||
)
|
||||
cleanup
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user