X-Git-Url: https://git.mdrn.pl/fnpdjango.git/blobdiff_plain/c10e0140bbe3ae9c151b003a85f1edd31daca60c..bb0871a31eef84a99fb187d37600dde563beeb69:/bin/fnpdjango_bootstrap.sh diff --git a/bin/fnpdjango_bootstrap.sh b/bin/fnpdjango_bootstrap.sh index 40f6b9a..9b2301b 100755 --- a/bin/fnpdjango_bootstrap.sh +++ b/bin/fnpdjango_bootstrap.sh @@ -1,7 +1,22 @@ #!/bin/bash +# +# Use as: +# +# source <(curl d.nowoczesnapolska.org.pl) +# + -DJANGO_REQ='django>=1.4,<1.5' PROJECT="$1" + +# Make it a function, so that it works with `source` +start_project() { + +DJANGO_REQ='Django>=1.6,<1.7' +DJANGO_ROOT='src' + +PYPI='http://pypi.nowoczesnapolska.org.pl/simple' +PROJECT_TEMPLATE='http://git.nowoczesnapolska.org.pl/?p=fnpdjango.git;a=snapshot;h=project;sf=tgz' + VIRTUALENVWRAPPER_PATHS=" /etc/bash_completion.d/virtualenvwrapper /usr/bin/virtualenvwrapper.sh @@ -10,16 +25,16 @@ VIRTUALENVWRAPPER_PATHS=" # Colorful output. strong='\e[0;32m' +error='\e[1;31m' normal='\e[0m' -if [ -z "$PROJECT" ] -then - echo "Usage:" - echo " fnpdjango_bootstrap.sh " - echo "or:" - echo " wget -O-|bash /dev/stdin edumedfnpdjango_bootstrap.sh " -fi - +echo "Create new Django project." +while [ -z "$PROJECT" ] +do + echo "Name of the project:" + read PROJECT +done +echo -e "Project: ${strong}${PROJECT}${normal}" for venv in $VIRTUALENVWRAPPER_PATHS do @@ -34,31 +49,57 @@ then echo "virtualenvwrapper found at $VIRTUALENVWRAPPER." source "$VIRTUALENVWRAPPER" else - echo "ERROR: virtualenvwrapper not found. Tried locations:" + echo -e "${error}ERROR: virtualenvwrapper not found. Tried locations:${normal}" echo "$VIRTUALENVWRAPPER_PATHS" - echo "Install virtualenvwrapper or add the correct path to this script." + echo -e "${error}Install virtualenvwrapper or add the correct path to this script.${normal}" echo "Aborting." - exit + return fi echo -e "${strong}Creating virtualenv: $PROJECT...${normal}" mkvirtualenv "$PROJECT" echo -e "${strong}Installing Django...${normal}" -pip install "$DJANGO_REQ" +pip install -i "$PYPI" "$DJANGO_REQ" +pip install -i "$PYPI" --pre django-startproject-plus echo -e "${strong}Starting the project...${normal}" -django-admin.py startproject \ - --template http://pypi.nowoczesnapolska.org.pl/bootstrap/project.tar.gz \ +django-startproject.py \ + --template "$PROJECT_TEMPLATE" \ + --name NOTICE \ + --extra_context='{"year": "`date +%Y`"}' \ "$PROJECT" cd "$PROJECT" -chmod +x manage.py -mv "$1"/localsettings.py.default "$PROJECT"/localsettings.py + +# GitWeb adds a top directory to the snapshot, let's remove it. +if [ ! -e .gitignore ] +then + WRAPPER="`ls`" + mv "$WRAPPER/"* "$WRAPPER/".gitignore . + rmdir "$WRAPPER" +fi + +chmod +x "$DJANGO_ROOT"/manage.py +mv "$DJANGO_ROOT/$PROJECT/localsettings.py.dev" "$DJANGO_ROOT/$PROJECT/localsettings.py" echo -e "${strong}Installing requirements...${normal}" -pip install -r requirements.txt +pip install -i "$PYPI" -r requirements.txt echo -e "${strong}Installing developer requirements...${normal}" -pip install -r requirements-dev.txt +pip install -i "$PYPI" -r requirements-dev.txt +echo -e "${strong}Running syncdb...${normal}" +"$DJANGO_ROOT"/manage.py syncdb --noinput + echo -e "${strong}Starting new git repository...${normal}" git init +echo -e "${strong}What next?${normal}" +echo " * Work on your app, commit to git." +echo " * Review fabfile, use fab for deployment." + + +} +start_project + +# The following is just for displaying it as a webpage:

source <(curl )

+