-
Notifications
You must be signed in to change notification settings - Fork 0
/
new
executable file
·44 lines (41 loc) · 1.05 KB
/
new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/zsh
# update dir before using it
dir=/Users/$USER/Documents/Templates
e=$(ls $dir/*.* | sed 's/.*\././g' | sed 's/^/\"/g' | sed 's/$/\"/g' | tr '\n' ',' | sed 's/,$//g' | sed 's/,/, /g')
if [ $# -ne 1 ]; then
echo "Creating script template based on input's extension."
echo "Supported script types are "$e
echo -e "\e[31m$(basename $0)\e[0m <\e[35mscript\e[0m.\e[34mextension\e[0m>"
exit
fi
obj=$1
if [ -f $obj ]; then
echo "Skipping existing file: "$obj
exit
fi
ext=${obj##*.}
function chkcp {
for i in $@; do
if [ ! -f "$(basename $i)" ]; then
cp $i .;
fi
done
}
if ls $dir/*.$ext &>/dev/null; then
template=$(ls $dir/*.$ext)
if [ $obj != $template ]; then
if [[ $ext == "c" ]]; then
cat $template | sed "s/AUTHOR/$USER/g" > $obj;
chkcp $dir/c/*.{c,h};
if [ ! -f "Makefile" ]; then
printf "${obj%.c}: $obj kstring.c zfio.c\n\tcc -o \$@ \$^ -lz" > Makefile
fi
else
cat $template | sed "s/AUTHOR/$USER/g" > $obj && chmod +x $obj
fi
else
echo "Skipping template: "$template
fi
else
echo "Unsupported template: "$1
fi