summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-10-20 17:49:49 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-10-20 17:49:49 -0400
commitf7f89bc6ad82ad0ce83a0bf35edcc05957dfbc63 (patch)
treeb21a5bbfeeaf27effe276bfe53e0deb731af07b7
parent358e6bb02ffb3b79168f87b9905584ee1a1969c0 (diff)
redo libre/parabolaweb-git into libre/parabolaweb-utils
-rwxr-xr-xlibre/parabolaweb-git/Makefile26
-rwxr-xr-xlibre/parabolaweb-git/PKGBUILD43
-rwxr-xr-xlibre/parabolaweb-git/deps-ver.txt7
-rwxr-xr-xlibre/parabolaweb-git/parabolaweb.init.sh52
-rwxr-xr-xlibre/parabolaweb-git/parabolaweb.update.sh.in59
-rwxr-xr-xlibre/parabolaweb-git/requirements_prod.txt7
-rw-r--r--libre/parabolaweb-utils/PKGBUILD37
-rw-r--r--libre/parabolaweb-utils/helper.sh37
-rw-r--r--libre/parabolaweb-utils/parabolaweb.init.sh51
-rw-r--r--libre/parabolaweb-utils/update-parabolaweb81
10 files changed, 206 insertions, 194 deletions
diff --git a/libre/parabolaweb-git/Makefile b/libre/parabolaweb-git/Makefile
deleted file mode 100755
index 55115aba3..000000000
--- a/libre/parabolaweb-git/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-all:
- makepkg
-
-python_packages=south
-python2_packages=markdown|psycopg2|pyinotify|pytz
-requirements= https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt
-
-requirements_prod.txt: WEB
- rm -f $@
- wget --no-check-certificate $(requirements)
-
-deps-ver.txt: requirements_prod.txt
- sed -r -e 's/.*/\L&/' -e 's/==/=/' \
- -e 's/^(${python_packages})/python-&/' \
- -e 's/^(${python2_packages})/python2-&/' $< >$@
-
-deps-nover.txt: deps-ver.txt
- sed 's/[<>=].*//' $< >$@
-
-clean:
- rm requirements_prod.txt deps-ver.txt deps-nover.txt
-
-WEB: FORCE
-FORCE: PHONY
-PHONY:
-.PHONY: PHONY
diff --git a/libre/parabolaweb-git/PKGBUILD b/libre/parabolaweb-git/PKGBUILD
deleted file mode 100755
index 4641ea8d3..000000000
--- a/libre/parabolaweb-git/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-
-pkgname=parabolaweb-git
-pkgver=20120506
-pkgrel=3
-pkgdesc="The Parabola website, fork of archweb"
-arch=('any')
-url="https://projects.parabolagnulinux.org/parabolaweb.git/"
-license=('GPL2')
-
-_deps_file=deps-ver.txt
-#_deps_file=deps-nover.txt
-make "$_deps_file" 1>&2
-depends=('python2' 'git' 'libretools' `cat $_deps_file`)
-
-source=('parabolaweb.init.sh' 'parabolaweb.update.sh.in')
-
-# These will make it install into /http/srv/web
-_install_dir=/srv/http
-_gitname=web
-
-_gitroot=https://projects.parabolagnulinux.org/parabolaweb.git
-_gitbranch="master"
-
-build() {
- cd "${srcdir}"
- sed \
- -e "s|^_install_dir=.*|_install_dir='$_install_dir'|" \
- -e "s|^_gitname=.*|_gitname='$_gitname'|" \
- -e "s|^_gitroot=.*|_gitroot='$_gitroot'|" \
- -e "s|^_gitbranch=.*|_gitbranch='$_gitbranch'|" \
- < parabolaweb.update.sh.in > parabolaweb.update.sh
-}
-
-package() {
- cd "${srcdir}"
- install -d "${pkgdir}/${_install_dir}"
- install -Dm755 parabolaweb.init.sh "${pkgdir}/etc/rc.d/parabolaweb"
- install -Dm755 parabolaweb.update.sh "${pkgdir}/usr/sbin/parabolaweb.update"
-}
-
-md5sums=('72bc7092e4e50a2aaca8b871644520d9'
- 'f495b2e4623691925308cb4a1ec7e5a9')
diff --git a/libre/parabolaweb-git/deps-ver.txt b/libre/parabolaweb-git/deps-ver.txt
deleted file mode 100755
index 67fe6848b..000000000
--- a/libre/parabolaweb-git/deps-ver.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-django=1.3.1
-python2-markdown>=2.0.3
-python2-psycopg2
-python-south>=0.7.3
-python2-pyinotify>=0.9.2
-python-memcached>=1.47
-python2-pytz>=2011n
diff --git a/libre/parabolaweb-git/parabolaweb.init.sh b/libre/parabolaweb-git/parabolaweb.init.sh
deleted file mode 100755
index cb9f2441e..000000000
--- a/libre/parabolaweb-git/parabolaweb.init.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-HOST=127.0.0.1
-PORT=8090 # 80 is nginx
-PIDFILE=/var/run/web/fcgi.pid
-
-case $1 in
-start)
- stat_busy "Starting ParabolaWeb"
- if [[ -e /srv/http/web/manage.py ]]; then
- sudo -u nobody \
- python2 /srv/http/web/manage.py runfcgi \
- host=${HOST} \
- port=${PORT} \
- pidfile=${PIDFILE} \
- --settings=settings
-
- add_daemon parabolaweb
- stat_done
- exit 0
- else
- stat_fail
- exit 1
- fi
- ;;
-
-stop)
- stat_busy "Stopping ParabolaWeb"
- if [[ -f ${PIDFILE} ]]; then
- pid=$(cat ${PIDFILE})
- kill ${pid}
- rm_daemon parabolaweb
- stat_done
- else
- stat_fail
- exit 1
- fi
- ;;
-
-restart)
- $0 stop
- $0 start
- ;;
-
-*)
- echo "Usage: $0 {start|stop|restart}" >&2
- exit 1
-
-esac
diff --git a/libre/parabolaweb-git/parabolaweb.update.sh.in b/libre/parabolaweb-git/parabolaweb.update.sh.in
deleted file mode 100755
index 8c3aef0f0..000000000
--- a/libre/parabolaweb-git/parabolaweb.update.sh.in
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-set -e
-
-_install_dir=@INSTALL_DIR@
-_gitname=@GIT_NAME@
-
-_gitroot=@GITROOT@
-_gitbranch=@GITBRANCH@
-
-. /usr/bin/libremessages
-
-if [ ! -d "$_install_dir" ]; then
- mkdir "$_install_dir"
-fi
-cd "$_install_dir"
-
-msg "Connecting to GIT server...."
-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"
-
-msg "Purging old .pyc files...."
-find . -name '*.pyc' -delete
-
-msg "Checking configuration...."
-if [ ! -f local_settings.py ]; then
- cp local_settings.py.example local_settings.tmp.$$.py
- if ${EDITOR:-xdg-open} 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
- msg "Creating database...."
- ./manage.py syncdb
-fi
-
-msg "Purging old .pyc files...."
-find . -name '*.pyc' -delete
-
-msg "Updating database...."
-msg2 "Running migrations...."
-./manage.py migrate
-msg2 "Loading fixtures...."
-./manage.py loaddata */fixtures/*.json
-
-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
diff --git a/libre/parabolaweb-git/requirements_prod.txt b/libre/parabolaweb-git/requirements_prod.txt
deleted file mode 100755
index 78eb51250..000000000
--- a/libre/parabolaweb-git/requirements_prod.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Django==1.3.1
-Markdown>=2.0.3
-psycopg2
-South>=0.7.3
-pyinotify>=0.9.2
-python-memcached>=1.47
-pytz>=2011n
diff --git a/libre/parabolaweb-utils/PKGBUILD b/libre/parabolaweb-utils/PKGBUILD
new file mode 100644
index 000000000..3b57c5d13
--- /dev/null
+++ b/libre/parabolaweb-utils/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+. helper.sh
+# provides:
+# _get_pkgver
+# _get_depends
+# _get_depends_nover (no version requirements)
+
+pkgname=parabolaweb-utils
+pkgver=`_get_pkgver`
+pkgrel=1
+pkgdesc="Utils for the Parabola website"
+arch=('any')
+url="https://projects.parabolagnulinux.org/parabolaweb.git/"
+license=('GPL2')
+depends=('python2' 'git' 'libretools' `_get_depends`)
+
+export pkgver
+
+source=(git://parabolagnulinux.org/parabolaweb.git
+ parabolaweb.init.sh
+ update-parabolaweb)
+
+build() {
+ :
+}
+
+package() {
+ cd "${srcdir}"
+ install -d "${pkgdir}/${_install_dir}"
+ install -Dm755 parabolaweb.init.sh "${pkgdir}/etc/rc.d/parabolaweb"
+ install -Dm755 update-parabolaweb "${pkgdir}/usrls/sbin/update-parabolaweb"
+}
+
+md5sums=('SKIP'
+ 'f52aebbedaa61f688fb2bc626a783003'
+ 'dd05d6a4ea7cff7fdd789f59aeb9059a')
diff --git a/libre/parabolaweb-utils/helper.sh b/libre/parabolaweb-utils/helper.sh
new file mode 100644
index 000000000..d00f83f7f
--- /dev/null
+++ b/libre/parabolaweb-utils/helper.sh
@@ -0,0 +1,37 @@
+_mksource() {
+ if [[ -z _DO_NOT_RUN_MKSOURCE ]]; then
+ _DO_NOT_RUN_MKSOURCE=true makepkg -o
+ fi
+}
+
+_get_pkgver() {
+ if [[ -n $pkgver ]] && [[ $pkgver != 0.bogus ]]; then
+ echo $pkgver
+ else
+ _mksource 1>&2
+ if [[ -f "${srcdir:-src}/parabolaweb/requirements_prod.txt" ]]; then
+ pushd "${srcdir:-src}/parabolaweb" >/dev/null
+ # get the date requirements_prod.txt was last modified
+ gitdate="$(git log -n1 --date=iso --format=format:'%cd' ./requirements_prod.txt)"
+ date -u +%Y%m%d.%H%M -d "$gitdate"
+ popd >/dev/null
+ else
+ echo 0.bogus
+ fi
+ fi
+}
+
+_get_depends() {
+ _mksource 1>&2
+ pushd "${srcdir:-src}" >/dev/null
+ python2_packages='markdown|psycopg2|pyinotify|pytz|south'
+ < parabolaweb/requirements_prod.txt sed -r \
+ -e 's/.*/\L&/' -e 's/==/=/' \
+ -e 's/^python-memcached/python2-memcached/' \
+ -e "s/^(${python2_packages})/python2-&/"
+ popd >/dev/null
+}
+
+_get_depends_nover() {
+ _get_depends | sed 's/[<>=].*//'
+}
diff --git a/libre/parabolaweb-utils/parabolaweb.init.sh b/libre/parabolaweb-utils/parabolaweb.init.sh
new file mode 100644
index 000000000..0ff8ecd7c
--- /dev/null
+++ b/libre/parabolaweb-utils/parabolaweb.init.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+HOST=127.0.0.1
+PORT=8090 # 80 is nginx
+PIDFILE=/var/run/web/fcgi.pid
+
+case $1 in
+start)
+ stat_busy "Starting ParabolaWeb"
+ if [[ -e /srv/http/web/manage.py ]]; then
+ sudo -u nobody \
+ python2 /srv/http/web/manage.py runfcgi \
+ host=${HOST} \
+ port=${PORT} \
+ pidfile=${PIDFILE} \
+ --settings=settings
+ add_daemon parabolaweb
+ stat_done
+ exit 0
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ stat_busy "Stopping ParabolaWeb"
+ if [[ -f ${PIDFILE} ]]; then
+ pid=$(cat ${PIDFILE})
+ kill ${pid}
+ rm_daemon parabolaweb
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac
diff --git a/libre/parabolaweb-utils/update-parabolaweb b/libre/parabolaweb-utils/update-parabolaweb
new file mode 100644
index 000000000..e4d65c2d9
--- /dev/null
+++ b/libre/parabolaweb-utils/update-parabolaweb
@@ -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 "$@"