# HG changeset patch # User Sylvain Thénault # Date 1252418360 -7200 # Node ID 819aea45625181171e6ab386aaea586aca76751c # Parent 7b405bb305abb7d1a898aa00ba6a8934b1f6a81d# Parent 9e7a155bc4e52f342a759e9ec932f7a4d77b2008 merge diff -r 7b405bb305ab -r 819aea456251 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Tue Sep 08 15:59:20 2009 +0200 @@ -0,0 +1,10 @@ +\.svn +^build$ +^dist$ +\.pyc$ +\.pyo$ +\.bak$ +\.old$ +\~$ +\#.*?\#$ +\.swp$ diff -r 7b405bb305ab -r 819aea456251 bin/cubicweb-ctl.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/cubicweb-ctl.bat Tue Sep 08 15:59:20 2009 +0200 @@ -0,0 +1,18 @@ +@echo off +rem = """-*-Python-*- script +rem -------------------- DOS section -------------------- +rem You could set PYTHONPATH or TK environment variables here +python -x "%~f0" %* +goto exit + +""" +# -------------------- Python section -------------------- +from cubicweb.cwctl import run +import sys +run(sys.argv[1:]) + +DosExitLabel = """ +:exit +rem """ + + diff -r 7b405bb305ab -r 819aea456251 common/i18n.py --- a/common/i18n.py Tue Sep 08 15:30:49 2009 +0200 +++ b/common/i18n.py Tue Sep 08 15:59:20 2009 +0200 @@ -44,9 +44,10 @@ status != 0 """ print cmd.replace(os.getcwd() + os.sep, '') - status = os.system(cmd) + from subprocess import call + status = call(cmd) if status != 0: - raise Exception() + raise Exception('status = %s' % status) def available_catalogs(i18ndir=None): @@ -74,15 +75,15 @@ mergedpo = join(destdir, '%s_merged.po' % lang) try: # merge instance/cubes messages catalogs with the stdlib's one - execute('msgcat --use-first --sort-output --strict %s > %s' - % (' '.join(pofiles), mergedpo)) - # make sure the .mo file is writeable and compile with *msgfmt* + execute('msgcat --use-first --sort-output --strict -o "%s" %s' + % (mergedpo, ' '.join('"%s"' % f for f in pofiles))) + # make sure the .mo file is writeable and compiles with *msgfmt* applmo = join(destdir, lang, 'LC_MESSAGES', 'cubicweb.mo') try: ensure_fs_mode(applmo) except OSError: pass # suppose not exists - execute('msgfmt %s -o %s' % (mergedpo, applmo)) + execute('msgfmt "%s" -o "%s"' % (mergedpo, applmo)) except Exception, ex: errors.append('while handling language %s: %s' % (lang, ex)) try: diff -r 7b405bb305ab -r 819aea456251 cwconfig.py --- a/cwconfig.py Tue Sep 08 15:30:49 2009 +0200 +++ b/cwconfig.py Tue Sep 08 15:59:20 2009 +0200 @@ -20,6 +20,7 @@ from smtplib import SMTP from threading import Lock from os.path import exists, join, expanduser, abspath, normpath, basename, isdir +import tempfile from logilab.common.decorators import cached from logilab.common.deprecation import deprecated @@ -526,13 +527,13 @@ if CubicWebNoAppConfiguration.mode == 'test': root = os.environ['APYCOT_ROOT'] REGISTRY_DIR = '%s/etc/cubicweb.d/' % root - RUNTIME_DIR = '/tmp/' + RUNTIME_DIR = tempfile.gettempdir() MIGRATION_DIR = '%s/local/share/cubicweb/migration/' % root if not exists(REGISTRY_DIR): os.makedirs(REGISTRY_DIR) elif CubicWebNoAppConfiguration.mode == 'dev': REGISTRY_DIR = expanduser('~/etc/cubicweb.d/') - RUNTIME_DIR = '/tmp/' + RUNTIME_DIR = tempfile.gettempdir() MIGRATION_DIR = join(CW_SOFTWARE_ROOT, 'misc', 'migration') else: #mode = 'installed' REGISTRY_DIR = '/etc/cubicweb.d/' @@ -651,7 +652,7 @@ def default_log_file(self): """return default path to the log file of the instance'server""" if self.mode == 'dev': - basepath = '/tmp/%s-%s' % (basename(self.appid), self.name) + basepath = join(tempfile.gettempdir(), '%s-%s' % (basename(self.appid), self.name)) path = basepath + '.log' i = 1 while exists(path) and i < 100: # arbitrary limit to avoid infinite loop @@ -794,8 +795,8 @@ from glob import glob yield 'en' # ensure 'en' is yielded even if no .mo found for path in glob(join(self.apphome, 'i18n', - '*', 'LC_MESSAGES', 'cubicweb.mo')): - lang = path.split(os.sep)[-3] + '*', 'LC_MESSAGES')): + lang = path.split(os.sep)[-2] if lang != 'en': yield lang diff -r 7b405bb305ab -r 819aea456251 cwctl.py --- a/cwctl.py Tue Sep 08 15:30:49 2009 +0200 +++ b/cwctl.py Tue Sep 08 15:59:20 2009 +0200 @@ -5,7 +5,13 @@ %s""" import sys -from os import remove, listdir, system, kill, getpgid, pathsep +from os import remove, listdir, system, pathsep +try: + from os import kill, getpgid +except ImportError: + def kill(*args): pass + def getpgid(): pass + from os.path import exists, join, isfile, isdir from logilab.common.clcommands import register_commands, pop_arg @@ -23,7 +29,7 @@ while nbtry < maxtry: try: kill(pid, signal.SIGUSR1) - except OSError: + except (OSError, AttributeError): # XXX win32 break nbtry += 1 sleep(waittime) diff -r 7b405bb305ab -r 819aea456251 devtools/devctl.py --- a/devtools/devctl.py Tue Sep 08 15:30:49 2009 +0200 +++ b/devtools/devctl.py Tue Sep 08 15:59:20 2009 +0200 @@ -10,7 +10,7 @@ import sys from datetime import datetime -from os import mkdir, chdir +from os import mkdir, chdir, getcwd from os.path import join, exists, abspath, basename, normpath, split, isdir from warnings import warn @@ -283,20 +283,20 @@ if lang is not None: cmd += ' -L %s' % lang potfile = join(tempdir, '%s.pot' % id) - execute(cmd % (potfile, ' '.join(files))) + execute(cmd % (potfile, ' '.join('"%s"' % f for f in files))) if exists(potfile): potfiles.append(potfile) else: print '-> WARNING: %s file was not generated' % potfile print '-> merging %i .pot files' % len(potfiles) cubicwebpot = join(tempdir, 'cubicweb.pot') - execute('msgcat %s > %s' % (' '.join(potfiles), cubicwebpot)) + execute('msgcat -o %s %s' % (cubicwebpot, ' '.join('"%s"' % f for f in potfiles))) print '-> merging main pot file with existing translations.' chdir(I18NDIR) toedit = [] for lang in LANGS: target = '%s.po' % lang - execute('msgmerge -N --sort-output %s %s > %snew' % (target, cubicwebpot, target)) + execute('msgmerge -N --sort-output -o "%snew" "%s" "%s"' % (target, target, cubicwebpot)) ensure_fs_mode(target) shutil.move('%snew' % target, target) toedit.append(abspath(target)) @@ -390,12 +390,13 @@ cubefiles = find('.', '.py', blacklist=STD_BLACKLIST+('test',)) cubefiles.append(tali18nfile) execute('xgettext --no-location --omit-header -k_ -o %s %s' - % (tmppotfile, ' '.join(cubefiles))) + % (tmppotfile, ' '.join('"%s"' % f for f in cubefiles))) if exists(tmppotfile): # doesn't exists of no translation string found potfiles.append(tmppotfile) potfile = join(tempdir, 'cube.pot') print '-> merging %i .pot files:' % len(potfiles) - execute('msgcat %s > %s' % (' '.join(potfiles), potfile)) + execute('msgcat -o %s %s' % (potfile, + ' '.join('"%s"' % f for f in potfiles))) print '-> merging main pot file with existing translations:' chdir('i18n') for lang in LANGS: @@ -404,7 +405,7 @@ if not exists(cubepo): shutil.copy(potfile, cubepo) else: - execute('msgmerge -N -s %s %s > %snew' % (cubepo, potfile, cubepo)) + execute('msgmerge -N -s -o %snew %s %s' % (cubepo, cubepo, potfile)) ensure_fs_mode(cubepo) shutil.move('%snew' % cubepo, cubepo) toedit.append(abspath(cubepo)) diff -r 7b405bb305ab -r 819aea456251 etwist/server.py --- a/etwist/server.py Tue Sep 08 15:30:49 2009 +0200 +++ b/etwist/server.py Tue Sep 08 15:59:20 2009 +0200 @@ -15,8 +15,13 @@ from urlparse import urlsplit, urlunsplit import hotshot -from twisted.application import service, strports -from twisted.scripts._twistd_unix import daemonize +from twisted.application import strports +try: + from twisted.scripts._twistd_unix import daemonize +except ImportError: + def daemonize(): + raise NotImplementedError('not yet for win32') + from twisted.internet import reactor, task, threads from twisted.internet.defer import maybeDeferred from twisted.web2 import channel, http, server, iweb diff -r 7b405bb305ab -r 819aea456251 server/serverctl.py --- a/server/serverctl.py Tue Sep 08 15:30:49 2009 +0200 +++ b/server/serverctl.py Tue Sep 08 15:59:20 2009 +0200 @@ -312,7 +312,8 @@ # postgres specific stuff if driver == 'postgres': # install plpythonu/plpgsql language if not installed by the cube - for extlang in ('plpythonu', 'plpgsql'): + langs = ('plpgsql',) if sys.platform == 'win32' else ('plpythonu', 'plpgsql') + for extlang in langs: helper.create_language(cursor, extlang) cursor.close() cnx.commit() @@ -676,7 +677,7 @@ import tempfile srcappid = pop_arg(args, 1, msg='No source instance specified !') destappid = pop_arg(args, msg='No destination instance specified !') - output = tempfile.mkstemp(dir='/tmp/')[1] + output = tempfile.mkstemp()[1] if ':' in srcappid: host, srcappid = srcappid.split(':') _remote_dump(host, srcappid, output, self.config.sudo) diff -r 7b405bb305ab -r 819aea456251 toolsutils.py --- a/toolsutils.py Tue Sep 08 15:30:49 2009 +0200 +++ b/toolsutils.py Tue Sep 08 15:59:20 2009 +0200 @@ -10,9 +10,15 @@ # XXX move most of this in logilab.common (shellutils ?) import os, sys -from os import listdir, makedirs, symlink, environ, chmod, walk, remove +from os import listdir, makedirs, environ, chmod, walk, remove from os.path import exists, join, abspath, normpath +try: + from os import symlink +except ImportError: + def symlink(*args): + raise NotImplementedError + from logilab.common.clcommands import Command as BaseCommand, \ main_run as base_main_run from logilab.common.compat import any