X-Git-Url: https://scripts.mit.edu/gitweb/wizard.git/blobdiff_plain/32a088acc77f804c4862362061a1a9f7838b88b6..0f0d3e3da4c7fe6d3cd824b8fb9126c7758ead4a:/wizard/app/php.py diff --git a/wizard/app/php.py b/wizard/app/php.py index a049716..b617195 100644 --- a/wizard/app/php.py +++ b/wizard/app/php.py @@ -7,6 +7,7 @@ Common data and functions for use in PHP applications. """ import re +import os from wizard import app, util @@ -20,9 +21,28 @@ def re_var(var): """ return re.compile('^(\$' + app.expand_re(var) + r'''\s*=\s*)(.*)(;)''', re.M) +def re_define(var): + """ + Generates a regexp for the definition of a constant in PHP; the + quoted value is the second subpattern. + + >>> re_define('FOO').search("define('FOO', 'bar');").group(2) + "'bar'" + """ + return re.compile('^(define\([\'"]' + app.expand_re(var) + r'''['"]\s*,\s*)(.*)(\);)''', re.M) + def _make_filename_regex(var): return 'php.ini', re.compile('^(' + app.expand_re(var) + r'\s*=\s*)(.*)()$', re.M) +def ini_replace_vars(): + """ + Replace ``WIZARD_TMPDIR`` and ``WIZARD_SESSIONNAME`` with with user-specific values. + """ + text = open('php.ini', "r").read() + text = text.replace('WIZARD_TMPDIR', '/mit/%s/web_scripts_tmp' % os.environ['USER']) + text = text.replace('WIZARD_SESSIONNAME', '%s_SID' % os.environ['USER']) + open('php.ini', "w").write(text) + seed = util.dictmap(_make_filename_regex, { 'WIZARD_SESSIONNAME': 'session.name', 'WIZARD_TMPDIR': ('upload_tmp_dir', 'session.save_path'),