"""Messages used in the procedure of deploying Askbot """ import os.path from askbot.deployment import path_utils DEPLOY_PREAMBLE = """ Deploying Askbot - Django Q&A forum application Problems installing? -> please email admin@askbot.org To CANCEL - hit Ctr-C at any time """ WHERE_TO_DEPLOY = """Enter directory path (absolute or relative) to deploy askbot. To choose current directory - enter "." >""" CANT_INSTALL_INTO_FILE = '%(path)s is a file\ncannot install there' SHOULD_ADD_APP_HERE = 'Directory %(path)s?\nalready has a Django ' \ + 'project - do you want to add askbot app to that project?' HOW_TO_DEPLOY_NEW = 'Done. Please find further instructions at http://askbot.org/doc/' HOW_TO_ADD_ASKBOT_TO_DJANGO = HOW_TO_DEPLOY_NEW DIR_IS_NOT_WRITABLE = 'Directory %(dir)s is not writable' PARENT_DIR_IS_NOT_WRITABLE = """To create directory %(target_dir)s we need to add %(non_existing_tail)s to %(existing_prefix)s but %(existing_prefix)s is not writable""" CONFIRM_DIR_CREATION = """Adding new directories:\n%(existing_prefix)s <-/%(non_existing_tail)s Accept?""" CANNOT_OVERWRITE_DJANGO_PROJECT = """Directory %(directory)s already has a django project. If you want to overwrite settings.py and urls.py files, use parameter --force""" INVALID_INPUT = 'Please type one of: %(opt_string)s ' \ + '(or hit Ctrl-C to quit)' DIR_NAME_TAKEN_BY_PYTHON = """Directory '%(dir)s' is aready used by other Python module. Please choose some other name for your django project""" DIR_NAME_TAKEN_BY_ASKBOT = """Please do not name your entire Django project 'askbot', because this name is already used by the askbot app itself""" def format_msg_dir_not_writable(directory): """returns a meaningful message explaining why directory is not writable by the user """ if os.path.exists(directory): if path_utils.directory_is_writable(directory): return '' else: return DIR_IS_NOT_WRITABLE % {'dir': directory} else: prefix, tail = path_utils.split_at_break_point(directory) data = { 'existing_prefix': prefix, 'non_existing_tail': tail, 'target_dir': directory } return PARENT_DIR_IS_NOT_WRITABLE % data def format_msg_create(directory): """returns a message explaining wha directories are about to be created and asks user if they want to proceed """ if os.path.exists(directory): raise Exception('directory %s aready exists' % directory) else: prefix, tail = path_utils.split_at_break_point(directory) data = { 'existing_prefix': prefix, 'non_existing_tail': tail, } return CONFIRM_DIR_CREATION % data def format_msg_dir_unclean_django(directory): """retuns a message telling which of the parent directories contains a django project so that users don't create nested projects """ return path_utils.find_parent_dir_with_django(directory) def format_msg_bad_dir_name(directory): """directory name must be bad - i.e. taken by other python module on PYTHONPATH """ dir_name = os.path.basename(directory) if dir_name == 'askbot': return DIR_NAME_TAKEN_BY_ASKBOT else: return DIR_NAME_TAKEN_BY_PYTHON % {'dir': dir_name} def print_message(message, verbosity): if verbosity >= 1: print message