def verify_installation(request): config = request.get_configuration() if not "archive_template" in config: pwrap("missing optional config property 'archive_template' which " "allows you to specify how the archive links are created. " "refer to pyarchive plugin documentation for more details.") return True
def verify_installation(request): config = request.get_configuration() if not "archive_template" in config: pwrap( "missing optional config property 'archive_template' which " "allows you to specify how the archive links are created. " "refer to pyarchive plugin documentation for more details.") return True
def verify_installation(request): config = request.get_configuration() for mem in ("readmore_template", "readmore_breakpoint"): if mem not in config: pwrap("missing optional config property '%s'" % mem) return True
def verify_installation(request): config = request.get_configuration() # all config properties are optional if not 'trackback_urltrigger' in config: pwrap("missing optional property: 'trackback_urltrigger'") return True
def verify_installation(request): config = request.get_configuration() if not "category_item" in config: pwrap("missing optional config property 'category_item' which allows " "you to specify how the category hierarchy is rendered. see" "the documentation at the top of the pycategories plugin code " "file for more details.") return True
def verify_installation(request): config = request.get_configuration() if not "category_item" in config: pwrap( "missing optional config property 'category_item' which allows " "you to specify how the category hierarchy is rendered. see" "the documentation at the top of the pycategories plugin code " "file for more details.") return True
def build_pyblosxom(): """Imports config.py and builds an empty Pyblosxom object. """ pwrap("Trying to import the config module....") try: from config import py as cfg except StandardError: h, t = os.path.split(sys.argv[0]) scriptname = t or h pwrap_error("ERROR: Cannot find your config.py file. Please execute " "%s in the directory with the config.py file in it or use " "the --config flag.\n\n" "See \"%s --help\" for more details." % (scriptname, scriptname)) return None return Pyblosxom(cfg, {})
def verify_installation(request): config = request.get_configuration() retval = True if 'comment_dir' in config and not os.path.isdir(config['comment_dir']): pwrap_error( 'The "comment_dir" property in the config file must refer ' 'to a directory') retval = False smtp_keys_defined = [] smtp_keys=[ 'comment_smtp_server', 'comment_smtp_from', 'comment_smtp_to'] for k in smtp_keys: if k in config: smtp_keys_defined.append(k) if smtp_keys_defined: for i in smtp_keys: if i not in smtp_keys_defined: pwrap_error("Missing comment SMTP property: '%s'" % i) retval = False optional_keys = [ 'comment_dir', 'comment_ext', 'comment_draft_ext', 'comment_nofollow', 'comment_disable_after_x_days'] for i in optional_keys: if not i in config: pwrap("missing optional property: '%s'" % i) if 'comment_disable_after_x_days' in config: if ((not isinstance(config['comment_disable_after_x_days'], int) or config['comment_disable_after_x_days'] <= 0)): pwrap("comment_disable_after_x_days has a non-positive " "integer value.") return retval
def verify_installation(request): config = request.get_configuration() retval = True if 'comment_dir' in config and not os.path.isdir(config['comment_dir']): pwrap_error('The "comment_dir" property in the config file must refer ' 'to a directory') retval = False smtp_keys_defined = [] smtp_keys = ['comment_smtp_server', 'comment_smtp_from', 'comment_smtp_to'] for k in smtp_keys: if k in config: smtp_keys_defined.append(k) if smtp_keys_defined: for i in smtp_keys: if i not in smtp_keys_defined: pwrap_error("Missing comment SMTP property: '%s'" % i) retval = False optional_keys = [ 'comment_dir', 'comment_ext', 'comment_draft_ext', 'comment_nofollow', 'comment_disable_after_x_days' ] for i in optional_keys: if not i in config: pwrap("missing optional property: '%s'" % i) if 'comment_disable_after_x_days' in config: if ((not isinstance(config['comment_disable_after_x_days'], int) or config['comment_disable_after_x_days'] <= 0)): pwrap("comment_disable_after_x_days has a non-positive " "integer value.") return retval
def verify_installation(request): config = request.get_configuration() if not "nonhuman_name" in config: pwrap("missing optional property: 'nonhuman_name'") return True
def test_installation(command, argv): """ This function gets called when someone starts up pyblosxom.cgi from the command line with no REQUEST_METHOD environment variable. It: 1. verifies config.py file properties 2. initializes all the plugins they have installed 3. runs ``cb_verify_installation``--plugins can print out whether they are installed correctly (i.e. have valid config property settings and can read/write to data files) The goal is to be as useful and informative to the user as we can be without being overly verbose and confusing. This is designed to make it easier for a user to verify their Pyblosxom installation is working and also to install new plugins and verify that their configuration is correct. """ parser = build_parser("%prog test [options]") parser.parse_args() p = build_pyblosxom() if not p: return 0 request = p.get_request() config = request.config pwrap("System Information") pwrap("==================") pwrap("") pwrap("- pyblosxom: %s" % __version__) pwrap("- sys.version: %s" % sys.version.replace("\n", " ")) pwrap("- os.name: %s" % os.name) codebase = os.path.dirname(os.path.dirname(__file__)) pwrap("- codebase: %s" % config.get("codebase", codebase)) pwrap("") pwrap("Checking config.py file") pwrap("=======================") pwrap("- properties set: %s" % len(config)) config_keys = config.keys() if "datadir" not in config_keys: pwrap_error("- ERROR: 'datadir' must be set. Refer to installation " "documentation.") elif not os.path.isdir(config["datadir"]): pwrap_error("- ERROR: datadir '%s' does not exist." " You need to create your datadir and give it " " appropriate permissions." % config["datadir"]) else: pwrap("- datadir '%s' exists." % config["datadir"]) if "flavourdir" not in config_keys: pwrap("- WARNING: You should consider setting flavourdir and putting " "your flavour templates there. See the documentation for " "more details.") elif not os.path.isdir(config["flavourdir"]): pwrap_error("- ERROR: flavourdir '%s' does not exist." " You need to create your flavourdir and give it " " appropriate permissions." % config["flavourdir"]) else: pwrap("- flavourdir '%s' exists." % config["flavourdir"]) if (("blog_encoding" in config_keys and config["blog_encoding"].lower() != "utf-8")): pwrap_error("- WARNING: 'blog_encoding' is set to something other " "than 'utf-8'. As of Pyblosxom 1.5, " "this isn't a good idea unless you're absolutely certain " "it's going to work for your blog.") pwrap("") pwrap("Checking plugin configuration") pwrap("=============================") import traceback no_verification_support = [] if len(plugin_utils.plugins) + len(plugin_utils.bad_plugins) == 0: pwrap(" - There are no plugins installed.") else: if len(plugin_utils.bad_plugins) > 0: pwrap("- Some plugins failed to load.") pwrap("") pwrap("----") for mem in plugin_utils.bad_plugins: pwrap("plugin: %s" % mem[0]) print "%s" % mem[1] pwrap("----") if len(plugin_utils.plugins) > 0: pwrap("- This goes through your plugins and asks each of them " "to verify configuration and installation.") pwrap("") pwrap("----") for mem in plugin_utils.plugins: if hasattr(mem, "verify_installation"): pwrap("plugin: %s" % mem.__name__) print "file: %s" % mem.__file__ print "version: %s" % (str(getattr(mem, "__version__"))) try: if mem.verify_installation(request) == 1: pwrap("PASS") else: pwrap_error("FAIL") except StandardError: pwrap_error("FAIL: Exception thrown:") traceback.print_exc(file=sys.stdout) pwrap("----") else: mn = mem.__name__ mf = mem.__file__ no_verification_support.append( "'%s' (%s)" % (mn, mf)) if len(no_verification_support) > 0: pwrap("") pwrap("The following plugins do not support installation " "verification:") no_verification_support.sort() for mem in no_verification_support: print "- %s" % mem pwrap("") pwrap("Verification complete. Correct any errors and warnings above.")
def test_installation(command, argv): """ This function gets called when someone starts up pyblosxom.cgi from the command line with no REQUEST_METHOD environment variable. It: 1. verifies config.py file properties 2. initializes all the plugins they have installed 3. runs ``cb_verify_installation``--plugins can print out whether they are installed correctly (i.e. have valid config property settings and can read/write to data files) The goal is to be as useful and informative to the user as we can be without being overly verbose and confusing. This is designed to make it easier for a user to verify their Pyblosxom installation is working and also to install new plugins and verify that their configuration is correct. """ parser = build_parser("%prog test [options]") parser.parse_args() p = build_pyblosxom() if not p: return 0 request = p.get_request() config = request.config pwrap("System Information") pwrap("==================") pwrap("") pwrap("- pyblosxom: %s" % __version__) pwrap("- sys.version: %s" % sys.version.replace("\n", " ")) pwrap("- os.name: %s" % os.name) codebase = os.path.dirname(os.path.dirname(__file__)) pwrap("- codebase: %s" % config.get("codebase", codebase)) pwrap("") pwrap("Checking config.py file") pwrap("=======================") pwrap("- properties set: %s" % len(config)) config_keys = config.keys() if "datadir" not in config_keys: pwrap_error("- ERROR: 'datadir' must be set. Refer to installation " "documentation.") elif not os.path.isdir(config["datadir"]): pwrap_error("- ERROR: datadir '%s' does not exist." " You need to create your datadir and give it " " appropriate permissions." % config["datadir"]) else: pwrap("- datadir '%s' exists." % config["datadir"]) if "flavourdir" not in config_keys: pwrap("- WARNING: You should consider setting flavourdir and putting " "your flavour templates there. See the documentation for " "more details.") elif not os.path.isdir(config["flavourdir"]): pwrap_error("- ERROR: flavourdir '%s' does not exist." " You need to create your flavourdir and give it " " appropriate permissions." % config["flavourdir"]) else: pwrap("- flavourdir '%s' exists." % config["flavourdir"]) if (("blog_encoding" in config_keys and config["blog_encoding"].lower() != "utf-8")): pwrap_error("- WARNING: 'blog_encoding' is set to something other " "than 'utf-8'. As of Pyblosxom 1.5, " "this isn't a good idea unless you're absolutely certain " "it's going to work for your blog.") pwrap("") pwrap("Checking plugin configuration") pwrap("=============================") import traceback no_verification_support = [] if len(plugin_utils.plugins) + len(plugin_utils.bad_plugins) == 0: pwrap(" - There are no plugins installed.") else: if len(plugin_utils.bad_plugins) > 0: pwrap("- Some plugins failed to load.") pwrap("") pwrap("----") for mem in plugin_utils.bad_plugins: pwrap("plugin: %s" % mem[0]) print "%s" % mem[1] pwrap("----") if len(plugin_utils.plugins) > 0: pwrap("- This goes through your plugins and asks each of them " "to verify configuration and installation.") pwrap("") pwrap("----") for mem in plugin_utils.plugins: if hasattr(mem, "verify_installation"): pwrap("plugin: %s" % mem.__name__) print "file: %s" % mem.__file__ print "version: %s" % (str(getattr(mem, "__version__"))) try: if mem.verify_installation(request) == 1: pwrap("PASS") else: pwrap_error("FAIL") except StandardError: pwrap_error("FAIL: Exception thrown:") traceback.print_exc(file=sys.stdout) pwrap("----") else: mn = mem.__name__ mf = mem.__file__ no_verification_support.append("'%s' (%s)" % (mn, mf)) if len(no_verification_support) > 0: pwrap("") pwrap("The following plugins do not support installation " "verification:") no_verification_support.sort() for mem in no_verification_support: print "- %s" % mem pwrap("") pwrap("Verification complete. Correct any errors and warnings above.")