summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2010-05-11 19:34:58 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2010-05-11 19:34:58 +0200
commit264fef834ab10fc672eb72bbf7da822e2a93a578 (patch)
treea7bcce1a09755e7dde3afe825baa15d849959ec0
parentabc4db5913bebc4d16b22d8856dba16c695a1477 (diff)
parent8c016e8ace989e3e1d0dadd7e54e61849341168f (diff)
downloadportato-264fef834ab10fc672eb72bbf7da822e2a93a578.tar.gz
portato-264fef834ab10fc672eb72bbf7da822e2a93a578.tar.bz2
portato-264fef834ab10fc672eb72bbf7da822e2a93a578.zip
Pre-release merge
Merge branch '0.14' * 0.14: Fix release script pathes Add '--plugin-dir' option Add a README message to the release Add a release file Improve setup.py for release script Improve constants.py for release script
-rw-r--r--portato/__init__.py10
-rw-r--r--portato/constants.py17
-rwxr-xr-xrelease.sh58
-rw-r--r--setup.py11
4 files changed, 86 insertions, 10 deletions
diff --git a/portato/__init__.py b/portato/__init__.py
index ed5c94b..b4ea214 100644
--- a/portato/__init__.py
+++ b/portato/__init__.py
@@ -17,7 +17,7 @@ import sys, os
from optparse import OptionParser, SUPPRESS_HELP
from .log import start as logstart
-from .constants import LOCALE_DIR, APP, VERSION, REVISION
+from .constants import LOCALE_DIR, APP, VERSION, REVISION, PLUGIN_DIR
from .helper import debug, info, error
# set better version info
@@ -53,6 +53,9 @@ def get_parser (use_ = False):
parser.add_option("-F", "--no-fork", action = "store_true", dest = "nofork", default = False,
help = _("do not fork off as root"))
+ parser.add_option("--plugin-dir", action = "store_true", dest = "pdir", default = False,
+ help = _("print the directory the plugins are located in"))
+
return parser
def _sub_start ():
@@ -71,6 +74,11 @@ def start():
# run parser
(options, args) = get_parser().parse_args()
+ # plugin dir
+ if options.pdir:
+ print PLUGIN_DIR
+ return
+
if options.nofork or os.getuid() == 0: # start GUI
# close listener at exit
diff --git a/portato/constants.py b/portato/constants.py
index 059017e..5faefe1 100644
--- a/portato/constants.py
+++ b/portato/constants.py
@@ -26,13 +26,16 @@ These should be set during the installation.
@var CONFIG_LOCATION: L{CONFIG_DIR} plus name of the config file.
@type CONFIG_LOCATION: string
+@var ROOT_DIR: Overall root -- normally just '/'.
+@type ROOT_DIR: string
+@var DATA_DIR: Directory which contains all shared files.
+@type DATA_DIR: string
+
@var ICON_DIR: directory containing the icons
@type ICON_DIR: string
@var APP_ICON: the path of the application icon
@type APP_ICON: string
-@var DATA_DIR: Directory which contains all shared files.
-@type DATA_DIR: string
@var LOCALE_DIR: the path to the directory where the locale files (*.mo) are stored.
@type LOCALE_DIR: string
@var PLUGIN_DIR: Directory containing the plugin xmls.
@@ -54,8 +57,11 @@ from os.path import join as pjoin
if os.getuid() == 0:
os.environ["HOME"] = "/root"
+ROOT_DIR = ""
+DATA_DIR = "./"
+
# icons
-ICON_DIR = "icons/"
+ICON_DIR = pjoin(ROOT_DIR, DATA_DIR, "icons/")
APP_ICON = pjoin(ICON_DIR, "portato-icon.png")
# general
@@ -64,14 +70,13 @@ VERSION = "9999"
HOME = os.environ["HOME"]
# config
-CONFIG_DIR = "etc/"
+CONFIG_DIR = pjoin(ROOT_DIR, "etc/")
CONFIG_LOCATION = pjoin(CONFIG_DIR, "portato.cfg")
SESSION_DIR = pjoin(os.environ["HOME"], ".portato")
# misc dirs
-DATA_DIR = "./"
LOCALE_DIR = "i18n/"
-PLUGIN_DIR = pjoin(DATA_DIR, "plugins/")
+PLUGIN_DIR = pjoin(ROOT_DIR, DATA_DIR, "plugins/")
SETTINGS_DIR = pjoin(HOME, "."+APP)
TEMPLATE_DIR = "portato/gui/templates/"
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000..9a3936f
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+fail ()
+{
+ echo ERROR: $1
+ exit $2
+}
+
+replace_by ()
+{
+ echo ">>> ** Replace $1 by $2"
+
+ sed -i -e "s#^\($1\s*=\s*\).*#\1$2#" portato/constants.py \
+ || fail "Failure replacing $1" 1
+}
+
+ver=$(git describe --tags | sed -e "s/^v//")
+name=portato-$ver
+
+echo ">>> Cloning..."
+git clone . $name || fail "Cloning" 1
+
+pushd $name > /dev/null
+
+echo ">>> Compiling Cython sources"
+find -name '*.pyx' | xargs cython || fail "Cython" 1
+
+echo ">>> Patching constants.py"
+replace_by VERSION "'$ver'"
+replace_by ROOT_DIR "'/'"
+replace_by LOCALE_DIR "pjoin(ROOT_DIR, '/usr/share/locale')"
+replace_by TEMPLATE_DIR "pjoin(ROOT_DIR, DATA_DIR, 'templates')"
+replace_by DATA_DIR "'/usr/share/portato/'"
+
+echo ">>> Patching setup.py."
+sed -i -e "s/^.*#!REMOVE\$//" setup.py || fail "Failure removing lines" 1
+sed -i -e "s/^\(\s*\)#!INSERT \(.*\)/\1\2/" setup.py || fail "Failure inserting lines" 1
+
+echo ">>> Creating README"
+cat << EOF > README
+This package is intended solely for being used system-wide (normally installed via Portage).
+
+If you want to have a packed version (for whatever reason), please use one of the following sources:
+
+* Packed snapshot: http://git.necoro.eu/portato.git/snapshot/portato-v${ver}.tar.gz
+* Git Tree: git clone git://necoro.eu/portato.git --> cd portato --> git checkout -b v${ver} v${ver}
+
+In both cases you should read: http://necoro.eu/portato/development
+
+EOF
+
+popd > /dev/null
+
+echo ">>> Packing"
+tar -zcvf ${name}.tar.gz $name --exclude ".git*" || fail "Packing" 1
+
+echo ">>> Removing temp dir"
+rm -rf $name || fail "Removing" 1
diff --git a/setup.py b/setup.py
index 766b2a2..5334b64 100644
--- a/setup.py
+++ b/setup.py
@@ -42,17 +42,22 @@ data_files = [
cmdclass = {'build_manpage': build_manpage}
# remove useless options / they are the default
-for o in ("cython", "eix"):
+for o in (
+ "eix",
+ "cython", #!REMOVE
+ ):
try:
sys.argv.remove("--enable-"+o)
except ValueError:
pass
# extension stuff
-if "--disable-cython" in sys.argv:
- sys.argv.remove("--disable-cython")
+#!INSERT if not "--enable-cython" in sys.argv:
+if "--disable-cython" in sys.argv: #!REMOVE
+ sys.argv.remove("--disable-cython") #!REMOVE
ext = "c"
else:
+ #!INSERT sys.argv.remove("--enable-cython")
from Cython.Distutils import build_ext
cmdclass['build_ext'] = build_ext
ext = "pyx"