dotfiles/zsh/func/makers/mkcodemod
2013-01-07 09:53:19 -08:00

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