dotfiles/zsh/func/makers/mkdjango
2012-11-15 13:54:16 -08:00

51 lines
1.1 KiB
Bash

#!/bin/zsh
# Create a Django project using a template in .dotfiles/codetemplates/django
# Eryn Wells <eryn@erynwells.me>
local funcname=$0
_usage() {
print_info "Usage: $funcname template_name project_name [optional destination directory]"
}
if [[ ${#@} -lt 2 ]]; then
print_error "Need moar arguments" 1>&2
_usage
return -1
fi
local tname=$1
local tdir="$HOME/.codetemplates/django/$tname"
local pname=$2
local dest=$3
if [[ ! -d "$tdir" ]]; then
print_error "Invalid template name: $tname" 1>&2
return -2
fi
print_info "Making Django project '$pname' with template '$tname'"
if [[ -n "$dest" && ! -d "$dest" ]]; then
print_info_sub "Destination directory given but does not exist; creating $dest"
mkdir -p "$dest"
fi
# Determine what files might not be rendered by django-admin.py
local names=()
for f in `find "$tdir"`; do
# Pick up all dotfiles
if [[ -e "$f" && "`basename $f`" =~ "^\." ]]; then
names+=($f)
fi
done
print_info_sub "Calling django-admin.py"
django-admin.py startproject --template="$tdir" --name=${(j.,.)names} $pname $dest
exitcode=$?
unfunction _usage
return $exitcode