73 lines
1.3 KiB
Bash
73 lines
1.3 KiB
Bash
#!/bin/zsh
|
|
# Create a code module
|
|
# Eryn Wells <eryn@erynwells.me>
|
|
|
|
local opts='Ccmph'
|
|
local funcname=$0
|
|
|
|
_usage() {
|
|
print_info "Usage: $funcname [-$opts] mod_name [mod_name] ..." 1>&2
|
|
}
|
|
|
|
if [[ ${#@} -lt 2 ]]; then
|
|
print_error "Insufficient number of arguments" 1>&2
|
|
_usage
|
|
return -1
|
|
fi
|
|
|
|
local opt
|
|
local complete=0
|
|
local srcext=''
|
|
local headext=''
|
|
local modtype=''
|
|
|
|
while getopts $opts opt; do
|
|
[[ $complete -eq 1 ]] && return 2
|
|
case $opt in
|
|
C)
|
|
modtype='C++'
|
|
srcext='cc'
|
|
headext='hh'
|
|
;;
|
|
c)
|
|
modtype='C'
|
|
srcext='c'
|
|
headext='h'
|
|
;;
|
|
m)
|
|
modtype='Objective-C'
|
|
srcext='m'
|
|
headext='h'
|
|
;;
|
|
p)
|
|
modtype='Python'
|
|
srcext='py'
|
|
;;
|
|
h)
|
|
_usage
|
|
return 0
|
|
;;
|
|
*)
|
|
print_error "Invalid argument: $opt" 1>&2
|
|
_usage
|
|
return 1
|
|
;;
|
|
esac
|
|
complete=1
|
|
done
|
|
|
|
if [[ -z $opt ]]; then
|
|
_usage
|
|
return -1
|
|
fi
|
|
|
|
print_info "Creating $modtype modules"
|
|
for mod in $@[$OPTIND,${#@}]; do
|
|
print_info_sub $mod
|
|
[[ -n $srcext ]] && touch $mod.$srcext
|
|
[[ -n $headext ]] && touch $mod.$headext
|
|
done
|
|
|
|
unfunction _usage
|
|
return 0
|
|
|