From b2a9ecfa7c51aa2f7041558fb26bfed007d68009 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 15 Nov 2012 13:54:16 -0800 Subject: [PATCH] mkdjango --- zsh/func/makers/mkdjango | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 zsh/func/makers/mkdjango diff --git a/zsh/func/makers/mkdjango b/zsh/func/makers/mkdjango new file mode 100644 index 0000000..5b6ce87 --- /dev/null +++ b/zsh/func/makers/mkdjango @@ -0,0 +1,51 @@ +#!/bin/zsh +# Create a Django project using a template in .dotfiles/codetemplates/django +# Eryn Wells + + +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