diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-10-21 01:07:09 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-10-21 01:07:09 -0400 |
commit | acf31d3f7569b7db4c14a6011aab88b0ce48a696 (patch) | |
tree | 3f532f4ae06e8de6c5f3aff4a720d2c0d75619f9 /libre/parabolaweb-utils/parabolaweb-update | |
parent | 53b785c979542521ba7bd7135246f1f9ba51757b (diff) |
improve libre/parabolaweb-utils
meta:
* add `python2-flup` as a dependency (needed for fcgi)
filesystem:
* mv `/usr/sbin/{update-parabolaweb,parabolaweb-update}`
* pull `/usr/sbin/parabolaweb-fgci` out of `/etc/rc.d/parabolaweb`
* pull `/etc/conf.d/parabolaweb` out of `/etc/rc.d/parabolaweb`
* add `/usr/lib/systemd/system/parabolaweb.service`
Diffstat (limited to 'libre/parabolaweb-utils/parabolaweb-update')
-rw-r--r-- | libre/parabolaweb-utils/parabolaweb-update | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/libre/parabolaweb-utils/parabolaweb-update b/libre/parabolaweb-utils/parabolaweb-update new file mode 100644 index 000000000..e4d65c2d9 --- /dev/null +++ b/libre/parabolaweb-utils/parabolaweb-update @@ -0,0 +1,81 @@ +#!/bin/bash +set -e + +_install_dir=/srv/http +_gitname=web +_gitroot=git://parabolagnulinux.org/parabolaweb.git +_gitbranch=master + +. /usr/bin/libremessages + +download() { + msg "Connecting to GIT server...." + cd "$_install_dir" + if [[ -d ${_gitname} ]]; then + msg2 "Updating existing tree" + cd ${_gitname} && git pull ${_gitroot} + else + msg2 "Cloning tree" + git clone ${_gitroot} ${_gitname} + cd ${_gitname} + fi + git checkout ${_gitbranch} + msg "GIT checkout done or server timeout" +} + +clean() { + msg "Purging old .pyc files...." + cd "$_install_dir/$_gitname" + find . -name '*.pyc' -delete +} + +configure() { + msg "Checking configuration...." + cd "$_install_dir/$_gitname" + if [[ ! -f local_settings.py ]]; then + msg2 "Configuration file missing, opening editor..." + cp local_settings.py.example local_settings.tmp.$$.py + if "$EDITOR" local_settings.tmp.$$.py; then + mv local_settings.tmp.$$.py local_settings.py + else + rm local_settings.tmp.$$.py + msg "Failed to configure, exiting" + exit 1 + fi + msg2 "Creating database...." + ./manage.py syncdb + else + msg2 "Current configuration checks out" + fi +} + +migrate() { + msg "Updating database...." + msg2 "Running migrations...." + ./manage.py migrate + msg2 "Loading fixtures...." + ./manage.py loaddata */fixtures/*.json +} + +main() { + if [[ -z "$EDITOR" ]]; then + error 'Please set the $EDITOR variable' + exit 1 + fi + + [[ ! -d "$_install_dir" ]] && mkdir "$_install_dir" + + download + clean + configure + clean + migrate + + msg "Checking media/admin_media symlink...." + if [ ! -e media/admin-media ]; then + rm media/admin_media + ln -s /usr/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media + fi +} + +main "$@" |