From ef70ca717bdecae1b909b8b24970e81eee20b985 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 6 May 2012 21:37:01 -0400 Subject: Make parabolaweb-git not actually clone parabolaweb, but provide parabolaweb tools --- ~lukeshu/parabolaweb-git/Makefile | 26 +++++++++ ~lukeshu/parabolaweb-git/PKGBUILD | 28 ++++++---- ~lukeshu/parabolaweb-git/deps-ver.txt | 7 +++ ~lukeshu/parabolaweb-git/parabolaweb.init.sh | 52 ++++++++++++++++++ ~lukeshu/parabolaweb-git/parabolaweb.install | 65 ----------------------- ~lukeshu/parabolaweb-git/parabolaweb.update.sh.in | 59 ++++++++++++++++++++ ~lukeshu/parabolaweb-git/requirements_prod.txt | 7 +++ 7 files changed, 168 insertions(+), 76 deletions(-) create mode 100644 ~lukeshu/parabolaweb-git/Makefile create mode 100644 ~lukeshu/parabolaweb-git/deps-ver.txt create mode 100644 ~lukeshu/parabolaweb-git/parabolaweb.init.sh delete mode 100644 ~lukeshu/parabolaweb-git/parabolaweb.install create mode 100644 ~lukeshu/parabolaweb-git/parabolaweb.update.sh.in create mode 100644 ~lukeshu/parabolaweb-git/requirements_prod.txt (limited to '~lukeshu') diff --git a/~lukeshu/parabolaweb-git/Makefile b/~lukeshu/parabolaweb-git/Makefile new file mode 100644 index 000000000..55115aba3 --- /dev/null +++ b/~lukeshu/parabolaweb-git/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/~lukeshu/parabolaweb-git/PKGBUILD b/~lukeshu/parabolaweb-git/PKGBUILD index 962b1c977..4641ea8d3 100644 --- a/~lukeshu/parabolaweb-git/PKGBUILD +++ b/~lukeshu/parabolaweb-git/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: Luke Shumaker -# 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/~lukeshu/parabolaweb-git/deps-ver.txt b/~lukeshu/parabolaweb-git/deps-ver.txt new file mode 100644 index 000000000..67fe6848b --- /dev/null +++ b/~lukeshu/parabolaweb-git/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/~lukeshu/parabolaweb-git/parabolaweb.init.sh b/~lukeshu/parabolaweb-git/parabolaweb.init.sh new file mode 100644 index 000000000..cb9f2441e --- /dev/null +++ b/~lukeshu/parabolaweb-git/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/~lukeshu/parabolaweb-git/parabolaweb.install b/~lukeshu/parabolaweb-git/parabolaweb.install deleted file mode 100644 index 53374ccc3..000000000 --- a/~lukeshu/parabolaweb-git/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/~lukeshu/parabolaweb-git/parabolaweb.update.sh.in b/~lukeshu/parabolaweb-git/parabolaweb.update.sh.in new file mode 100644 index 000000000..8c3aef0f0 --- /dev/null +++ b/~lukeshu/parabolaweb-git/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/~lukeshu/parabolaweb-git/requirements_prod.txt b/~lukeshu/parabolaweb-git/requirements_prod.txt new file mode 100644 index 000000000..78eb51250 --- /dev/null +++ b/~lukeshu/parabolaweb-git/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 -- cgit v1.2.3