virtualenv/setup/create_python_env.py
author rougeronj
Wed, 19 Sep 2012 18:16:19 +0200
changeset 789 d92d032a6d78
parent 668 b52724db32ab
permissions -rw-r--r--
Commit Julien: Champ de recherche de users et groups dans l'ajout de content, amélioré pour que le mot "recherche" disparaisse au moment ou l'on clique sur le champ. Meme modification dans la page "groups". Permettre à un user qui a le droit de creer un group, d'en creer un (le label de la permission est "auth.add_group").
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
Call this like ``python create_python_env.py``; it will
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
refresh the project-boot.py script
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
-prerequisite:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
- virtualenv
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
- python project-boot.py --unzip-setuptools --no-site-packages --clear --type-install=local <path_to_venv>
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
"""
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
import os
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
import subprocess
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
import re
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
import sys
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
here = os.path.dirname(os.path.abspath(__file__))
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
base_dir = here
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
script_name = os.path.join(base_dir, 'project-boot.py')
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
import virtualenv
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
50
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    25
src_base = os.path.abspath(os.path.join(here,"..","res","src")).replace("\\","/")
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    26
lib_path = os.path.abspath(os.path.join(here,"..","res","lib")).replace("\\","/")
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    27
patch_path = os.path.abspath(os.path.join(here,"res","patch")).replace("\\","/")
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    28
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
47
4ed054be603f improve create env script creation
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    30
EXTRA_TEXT  = "import sys\n"
4ed054be603f improve create env script creation
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    31
EXTRA_TEXT += "sys.path.append('%s')\n" % (lib_path)
50
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    32
EXTRA_TEXT += "sys.path.append('%s')\n" % (os.path.abspath(os.path.join(here,"res")).replace("\\","/"))
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    33
EXTRA_TEXT += "from res_create_env import generate_install_methods\n"
0d59e0522d36 simplify virtualenv creation script
ymh <ymh.work@gmail.com>
parents: 47
diff changeset
    34
EXTRA_TEXT += "adjust_options, extend_parser, after_install = generate_install_methods(path_locations, '%s', Logger, call_subprocess)\n" % (src_base)
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
def main():
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    python_version = ".".join(map(str,sys.version_info[0:2]))
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    if os.path.exists(script_name):
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        f = open(script_name)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        cur_text = f.read()
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        f.close()
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    else:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        cur_text = ''
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    print 'Updating %s' % script_name
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    if cur_text == 'text':
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        print 'No update'
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    else:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        print 'Script changed; updating...'
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        f = open(script_name, 'w')
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        f.write(text)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        f.close()
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
if __name__ == '__main__':
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    main()
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57