summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-05-06 21:37:01 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-05-06 21:37:01 -0400
commit2dace0c9f1d987d621045a37c20463d8aafdf050 (patch)
treeee7633cfbd542dcbd0fa32bb59522f6af8dfbd60
parentdb8b79e01b55c747c6747fbf4203309def2f46a9 (diff)
Make parabolaweb-git not actually clone parabolaweb, but provide parabolaweb tools
-rw-r--r--Makefile26
-rw-r--r--PKGBUILD28
-rw-r--r--deps-ver.txt7
-rw-r--r--parabolaweb.init.sh52
-rw-r--r--parabolaweb.install65
-rw-r--r--parabolaweb.update.sh.in59
-rw-r--r--requirements_prod.txt7
7 files changed, 168 insertions, 76 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..55115ab
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+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/PKGBUILD b/PKGBUILD
index 962b1c9..4641ea8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,20 +1,19 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# This does not follow normal package guidelines; it is not a normal package.
pkgname=parabolaweb-git
-pkgver=20120228
-pkgrel=2
+pkgver=20120506
+pkgrel=3
pkgdesc="The Parabola website, fork of archweb"
arch=('any')
url="https://projects.parabolagnulinux.org/parabolaweb.git/"
license=('GPL2')
-_requirements=https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt
-depends=('python2' 'git'
- `curl -s "$_requirements" | sed -r -e 's/.*/\L&/' -e 's/==/=/' \
- -e 's/^(south)/python-&/' \
- -e 's/^(markdown|psycopg2|pyinotify|pytz)/python2-&/'`)
-install=parabolaweb.install
+_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
@@ -24,14 +23,21 @@ _gitroot=https://projects.parabolagnulinux.org/parabolaweb.git
_gitbranch="master"
build() {
- sed -i \
+ 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.install
+ < 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/deps-ver.txt b/deps-ver.txt
new file mode 100644
index 0000000..67fe684
--- /dev/null
+++ b/deps-ver.txt
@@ -0,0 +1,7 @@
+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/parabolaweb.init.sh b/parabolaweb.init.sh
new file mode 100644
index 0000000..cb9f244
--- /dev/null
+++ b/parabolaweb.init.sh
@@ -0,0 +1,52 @@
+#!/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/parabolaweb.install b/parabolaweb.install
deleted file mode 100644
index 53374cc..0000000
--- a/parabolaweb.install
+++ /dev/null
@@ -1,65 +0,0 @@
-# These will make it install into /http/srv/web
-_install_dir='/srv/http'
-_gitname='web'
-
-_gitroot='https://projects.parabolagnulinux.org/parabolaweb.git'
-_gitbranch='master'
-
-msg() {
- echo $@
-}
-
-_main() {
- set -e
- if [ ! -d "$_install_dir" ]; then
- mkdir "$_install_dir"
- fi
- cd "$_install_dir"
-
- msg "Connecting to GIT server...."
- if [ -d ${_gitname} ] ; then
- cd ${_gitname}
- git pull ${_gitroot}
- msg "The local files are updated."
- else
- git clone ${_gitroot} ${_gitname}
- cd ${_gitname}
- fi
- git checkout ${_gitbranch}
- msg "GIT checkout done or server timeout"
-
- msg "Checking configuration...."
- if [ ! -f local_settings.py ]; then
- cp local_settings.py.example local_settings.py.tmp
- $EDITOR local_settings.py.tmp
- mv local_settings.py.tmp local_settings.py
- msg "Creating database...."
- ./manage.py syncdb
- fi
-
- msg "Purging old .pyc files...."
- find . -name '*.pyc' -delete
-
- msg "Updating database...."
- ./manage.py migrate
- ./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
-}
-
-# arg 1: the new package version
-post_install() {
- _main
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- _main
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/parabolaweb.update.sh.in b/parabolaweb.update.sh.in
new file mode 100644
index 0000000..8c3aef0
--- /dev/null
+++ b/parabolaweb.update.sh.in
@@ -0,0 +1,59 @@
+#!/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/requirements_prod.txt b/requirements_prod.txt
new file mode 100644
index 0000000..78eb512
--- /dev/null
+++ b/requirements_prod.txt
@@ -0,0 +1,7 @@
+Django==1.3.1
+Markdown>=2.0.3
+psycopg2
+South>=0.7.3
+pyinotify>=0.9.2
+python-memcached>=1.47
+pytz>=2011n