scripts/autoscript

61 lines
1.0 KiB
Plaintext
Raw Permalink Normal View History

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
oldIFS=$IFS
help() {
echo "Usage: ${0##*/} [-l lang][-h] FILENAME"
echo "Supported languages: python, crystal, bash (default)"
}
if [ $# -eq 0 ];then
help
exit 0
fi
read -d '' bashShebang << 'EOF' || true
#!/bin/bash
set -euo pipefail
IFS=$'\\n\\t'
EOF
read -d '' pythonShebang << EOF || true
#!/usr/bin/env python
EOF
read -d '' crystalShebang << EOF || true
#!/usr/bin/env crystal
EOF
shebang=$bashShebang
while getopts ":hl:" opt;do
if [ $opt == "h" ];then
help
exit 0
else
case $OPTARG in
py | python)shebang=$pythonShebang ;;
cr | crystal)shebang=$crystalShebang ;;
sh | bash | shell | *)shebang=$bashShebang ;;
esac
fi
done
shift $((OPTIND - 1))
SCRIPT_FOLDER=$HOME/.local/bin
SCRIPT_FILE=$SCRIPT_FOLDER/$1
if [[ -f $SCRIPT_FILE ]]; then
$EDITOR $SCRIPT_FILE
else
touch $SCRIPT_FILE
chmod +x $SCRIPT_FILE
echo "$shebang" >> $SCRIPT_FILE
$EDITOR $SCRIPT_FILE
fi
exit 0