virtualenv/sync/create_python_env.py
author rougeronj
Wed, 19 Sep 2012 18:16:19 +0200
changeset 789 d92d032a6d78
parent 671 fc56b4c9e4f3
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:
632
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
Call this like ``python create_python_env.py``; it will
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
refresh the project-boot.py script
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
-prerequisite:
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
- virtualenv
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
e85856bfd59b new sync script using fabric
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>
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
"""
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
import os
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
import subprocess
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
import re
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
import sys
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
here = os.path.dirname(os.path.abspath(__file__))
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
base_dir = here
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
script_name = os.path.join(base_dir, 'project-boot.py')
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
import virtualenv
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
src_base = os.path.abspath(os.path.join(here,"..","res","src")).replace("\\","/")
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
lib_path = os.path.abspath(os.path.join(here,"..","res","lib")).replace("\\","/")
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
patch_path = os.path.abspath(os.path.join(here,"res","patch")).replace("\\","/")
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
EXTRA_TEXT  = "import sys\n"
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
EXTRA_TEXT += "sys.path.append('%s')\n" % (lib_path)
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
EXTRA_TEXT += "sys.path.append('%s')\n" % (os.path.abspath(os.path.join(here,"res")).replace("\\","/"))
671
fc56b4c9e4f3 correct virtualenv creation
ymh <ymh.work@gmail.com>
parents: 668
diff changeset
    33
EXTRA_TEXT += "from res_create_env import generate_install_methods\n"
632
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
EXTRA_TEXT += "adjust_options, extend_parser, after_install = generate_install_methods(path_locations, '%s', Logger, call_subprocess)\n" % (src_base)
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
def main():
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    python_version = ".".join(map(str,sys.version_info[0:2]))
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version)
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    if os.path.exists(script_name):
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        f = open(script_name)
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        cur_text = f.read()
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        f.close()
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    else:
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        cur_text = ''
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    print 'Updating %s' % script_name
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    if cur_text == 'text':
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        print 'No update'
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    else:
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        print 'Script changed; updating...'
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        f = open(script_name, 'w')
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        f.write(text)
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        f.close()
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
if __name__ == '__main__':
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    main()
e85856bfd59b new sync script using fabric
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57