def _write_load_config_sh(self, environments_dir, quiet): puts(color_summary("Let's get you set up to run commcare-cloud.")) if not environments_dir: environments_dir = self._determine_environments_dir(quiet=quiet) commcare_cloud_dir = os.path.expanduser("~/.commcare-cloud") if not os.path.exists(commcare_cloud_dir): os.makedirs(commcare_cloud_dir) load_config_file = os.path.expanduser( "~/.commcare-cloud/load_config.sh") if not os.path.exists(load_config_file) or \ ask("Overwrite your ~/.commcare-cloud/load_config.sh?", quiet=quiet): with open(load_config_file, 'w') as f: f.write( textwrap.dedent(""" # auto-generated with `manage-commcare-cloud configure`: export COMMCARE_CLOUD_ENVIRONMENTS={COMMCARE_CLOUD_ENVIRONMENTS} export PATH=$PATH:{virtualenv_path} source {PACKAGE_BASE}/.bash_completion """.format( COMMCARE_CLOUD_ENVIRONMENTS=shlex_quote( environments_dir), virtualenv_path=get_virtualenv_bin_path(), PACKAGE_BASE=PACKAGE_BASE, )).strip()) puts(color_notice("Add the following to your ~/.bash_profile:")) puts(color_code("source ~/.commcare-cloud/load_config.sh")) puts( color_notice( "and then open a new shell. " "You should be able to run `commcare-cloud` without entering your virtualenv." ))
def print_command(command): """ commcare-cloud commands by convention print the underlying command they execute Use this function to do so """ if isinstance(command, (list, tuple)): command = ' '.join(shlex_quote(arg) for arg in command) print(color_code(command), file=sys.stderr)
def wrap(cls, data): for deprecated_property in ('py3_include_venv', 'py3_run_deploy'): if deprecated_property in data: print("{} {} {}".format( color_notice("The property"), color_code(deprecated_property), color_notice("is deprecated and has no effect.") )) print(color_notice("Feel free to remove it from your fab-settings.yml.")) del data[deprecated_property] obj = super(FabSettingsConfig, cls).wrap(data) return obj
def wrap(cls, data): for deprecated_property in ('py3_include_venv', 'py3_run_deploy'): if deprecated_property in data: print("{} {} {}".format( color_notice("The property"), color_code(deprecated_property), color_notice("is deprecated and has no effect.") )) print(color_notice("Feel free to remove it from your fab-settings.yml.")) del data[deprecated_property] obj = super(FabSettingsConfig, cls).wrap(data) if obj.use_shared_dir_for_staticfiles: assert obj.shared_dir_for_staticfiles, \ "Cannot have use_shared_dir_for_staticfiles without shared_dir_for_staticfiles" return obj