--- a/src/fablib/__init__.py Sat Aug 22 01:04:21 2015 +0200
+++ b/src/fablib/__init__.py Fri Sep 02 02:01:44 2016 +0200
@@ -1,13 +1,16 @@
from .core import (check_folder_access, migrate, collectstatic, do_relaunch_server,
- export_version, do_sync_web, create_config, clean_export_folder,
- sync_install_build, do_create_virtualenv, clean_rsync_folder, rsync_export,
- do_sync_comp, get_comp_versions_dict, SyncComp)
+ export_version, do_sync_web, create_config, clean_export_folder,
+ sync_install_build, do_create_virtualenv, clean_rsync_folder, rsync_export,
+ do_sync_comp, get_comp_versions_dict, SyncComp, get_src_version, sync_build,
+ install_build, do_create_virtualenv_requirement, build_src)
__all__ = ["check_folder_access", "migrate", "collectstatic", "do_sync_comp",
- "export_version", "do_sync_web", "create_config", "clean_export_folder", "relaunch_server",
- "do_sync_ldt", "sync_install_build", "do_create_virtualenv", "clean_rsync_folder", "rsync_export",
- "get_comp_versions_dict", "SyncComp"]
+ "export_version", "do_sync_web", "create_config", "clean_export_folder",
+ "relaunch_server", "do_sync_ldt", "sync_install_build", "do_create_virtualenv",
+ "clean_rsync_folder", "rsync_export", "get_comp_versions_dict", "SyncComp",
+ "get_src_version", "sync_build", "install_build", "do_create_virtualenv_requirement",
+ "build_src"]
VERSION = (0, 1, 0, "dev", 0)
--- a/src/fablib/core.py Sat Aug 22 01:04:21 2015 +0200
+++ b/src/fablib/core.py Fri Sep 02 02:01:44 2016 +0200
@@ -19,9 +19,10 @@
__all__ = ["check_folder_access", "migrate", "collectstatic", "do_relaunch_server",
- "export_version", "do_sync_web", "create_config", "clean_export_folder",
- "sync_install_build", "do_create_virtualenv", "clean_rsync_folder", "rsync_export",
- "do_sync_comp", "get_comp_versions_dict", "SyncComp"]
+ "export_version", "do_sync_web", "create_config", "clean_export_folder",
+ "sync_install_build", "do_create_virtualenv", "clean_rsync_folder", "rsync_export",
+ "do_sync_comp", "get_comp_versions_dict", "SyncComp", "get_src_version", "sync_build",
+ "install_build", "do_create_virtualenv_requirement", "build_src"]
def get_export_path(version):
base_path = os.path.join(env.base_export_path,env.export_prefix).rstrip("/")
@@ -68,16 +69,18 @@
print("Export version %s done"%repr(export_keys))
-def get_remote_env(remotepath, remotevirtualenvpath, platform_web_module, settings_key):
+def get_remote_env(remotepath, remotevirtualenvpath, platform_web_module, settings_key, settings_module=''):
+ if not settings_module:
+ settings_module = '%s.%s' % (platform_web_module, 'settings')
activate_path = os.path.join(remotevirtualenvpath, "bin/activate")
with prefix("source \"%s\"" % activate_path), prefix("export PYTHONPATH=\"%s\"" % remotepath), cd(remotepath):
tempfilepath = run("mktemp -t fablib.XXXXXX")
with settings(warn_only=True):
run("echo \"import os\" > %s" % (tempfilepath))
map(lambda str_echo: run("echo \"%s\" >> %s" % (str_echo, tempfilepath)),
- ["os.environ.setdefault('DJANGO_SETTINGS_MODULE', '%s.settings')" % (platform_web_module),
+ ["os.environ.setdefault('DJANGO_SETTINGS_MODULE', '%s')" % (settings_module),
"from django.conf import settings",
- "print settings.%s" % (settings_key)])
+ "print(settings.%s)" % (settings_key)])
res = run("python < %s" % (tempfilepath))
run("rm -f \"%s\"" % (tempfilepath))
return res
@@ -212,31 +215,31 @@
run("pip uninstall -y %s" % module_to_uninstall)
run("pip install --no-cache-dir \"%s\"" % remotepath)
-def collectstatic(remotepath, remotevirtualenvpath, platform_web_module, module_settings=""):
+def collectstatic(remotepath, remotevirtualenvpath, platform_web_module, module_settings="", admin_cmd="python manage.py"):
print("Collect static in %s with %s" % (remotepath, remotevirtualenvpath))
- remotestaticsitepath = get_remote_env(remotepath, remotevirtualenvpath, platform_web_module, "STATIC_ROOT")
+ remotestaticsitepath = get_remote_env(remotepath, remotevirtualenvpath, platform_web_module, "STATIC_ROOT", env.settings)
activate_path = os.path.join(remotevirtualenvpath, "bin/activate")
with prefix("source \"%s\"" % activate_path), prefix("export PYTHONPATH=\"%s\"" % remotepath), cd(remotepath):
#remove old files optio -c of collect static fail !
- run("rm -fr \"%s\"" % (remotestaticsitepath))
- run("python manage.py collectstatic --noinput %s" % ("--settings="+module_settings if module_settings else ""))
+ run("rm -fr \"%s\"/*" % (remotestaticsitepath))
+ run("%s collectstatic --noinput %s" % (admin_cmd, "--settings="+module_settings if module_settings else ""))
-def migrate(remotepath, remotevirtualenvpath, module_settings=""):
+def migrate(remotepath, remotevirtualenvpath, module_settings="", admin_cmd="python manage.py"):
{
'syncdb': do_syncdb,
'migrate': do_migrate,
- }.get(getattr(env, 'migrate_method', 'migrate'), do_syncdb)(remotepath, remotevirtualenvpath, module_settings)
+ }.get(getattr(env, 'migrate_method', 'migrate'), do_syncdb)(remotepath, remotevirtualenvpath, module_settings, admin_cmd)
-def do_syncdb(remotepath, remotevirtualenvpath, module_settings=""):
+def do_syncdb(remotepath, remotevirtualenvpath, module_settings="", admin_cmd="python manage.py"):
activate_path = os.path.join(remotevirtualenvpath, "bin/activate")
with prefix("source \"%s\"" % activate_path), prefix("export PYTHONPATH=\"%s\"" % remotepath), cd(remotepath):
- run("python manage.py syncdb --migrate --noinput %s" % ("--settings="+module_settings if module_settings else ""))
+ run("%s syncdb --migrate --noinput %s" % (admin_cmd, "--settings="+module_settings if module_settings else ""))
-def do_migrate(remotepath, remotevirtualenvpath, module_settings=""):
+def do_migrate(remotepath, remotevirtualenvpath, module_settings="", admin_cmd="python manage.py"):
activate_path = os.path.join(remotevirtualenvpath, "bin/activate")
with prefix("source \"%s\"" % activate_path), prefix("export PYTHONPATH=\"%s\"" % remotepath), cd(remotepath):
- run("python manage.py migrate --noinput %s" % ("--settings="+module_settings if module_settings else ""))
+ run("%s migrate --noinput %s" % (admin_cmd, "--settings="+module_settings if module_settings else ""))
def create_config(export_path):
@@ -287,6 +290,17 @@
with prefix("source \"%s\"" % activate_path):
run("pip install --no-cache-dir -r \"%s\"" % os.path.join(remote_venv_export_path,"virtualenv","web","res","srvr_requirements.txt"))
+def do_create_virtualenv_requirement(remote_venv_requirement_path, remotevirtualenvpath, python_version = "2"):
+ print("Create virtualenv export_path : %s - remote venvpath : %s" % (remote_venv_requirement_path, remotevirtualenvpath))
+ with settings(warn_only=True):
+ run("rm -fr \"%s\"" % remotevirtualenvpath)
+ run("mkdir -p \"%s\"" % remotevirtualenvpath)
+ run("virtualenv -p `which python%s` %s" % (python_version, remotevirtualenvpath))
+ with prefix("source \"%s\"" % os.path.join(remotevirtualenvpath, "bin/activate")):
+ run("pip install -r \"%s\"" % remote_venv_requirement_path)
+
+
+
def do_sync_comp(key, export_path):
print("do_sync_comp with path %s" % (export_path))
@@ -351,9 +365,9 @@
if do_check_folder_access:
check_folder_access()
if do_migrate:
- migrate(env.remote_path['src'], env.remote_path['virtualenv'], env.get('settings', ''))
+ migrate(env.remote_path['src'], env.remote_path['virtualenv'], env.get('settings', ''), env.get('admin_cmd', 'python manage.py'))
if do_collectstatic:
- collectstatic(env.remote_path['src'], env.remote_path['virtualenv'], env.platform_web_module, env.get('settings', ''))
+ collectstatic(env.remote_path['src'], env.remote_path['virtualenv'], env.platform_web_module, env.get('settings', ''), env.get('admin_cmd', 'python manage.py'))
sudo(env.web_relaunch_cmd, shell=False)