def __init__(self, latest_patch_version, tahoe_node_url, verbosity=0): self.verbosity = verbosity self.tahoe_node_url = tahoe_node_url ver = get_tahoe_version(tahoe_node_url) if ver is not None: self.tahoe_version = LooseVersion(ver) else: self.tahoe_version = ver print("Detected tahoe v%s" % self.tahoe_version) self.latest_patch_version = latest_patch_version self.datadir = find_datadir() self.is_compatible_version = compatible_version(self.tahoe_version, self.verbosity) if self.verbosity > 0 and ver is not None: print("-- Patching or checking Tahoe web console --") tahoe_dir = find_tahoe_dir(tahoe_node_url) if tahoe_dir is not None: self.webdir = os.path.join(tahoe_dir, 'web') else: sys.exit(1) self.filepaths = {'welcome.xhtml': [], 'tahoe.css': []} if ver is not None: self.add_patch_filepaths() self.add_target_filepaths() if self.verbosity > 3: print('DEBUG: Data dir is: %s' % self.datadir) print('DEBUG: Tahoe web dir is: %s' % self.webdir) if ver is not None and self.is_compatible_version: print('DEBUG: File paths:') print(self.filepaths)
def __init__(self, latest_patch_version, tahoe_node_url, verbosity=0): self.verbosity = verbosity self.tahoe_node_url = tahoe_node_url ver = get_tahoe_version(tahoe_node_url) if ver is not None: self.tahoe_version = LooseVersion(ver) else: self.tahoe_version = ver print("Detected tahoe v%s" % self.tahoe_version) self.latest_patch_version = latest_patch_version self.datadir = find_datadir() self.is_compatible_version = compatible_version( self.tahoe_version, self.verbosity) if self.verbosity > 0 and ver is not None: print("-- Patching or checking Tahoe web console --") tahoe_dir = find_tahoe_dir(tahoe_node_url) if tahoe_dir is not None: self.webdir = os.path.join(tahoe_dir, 'web') else: sys.exit(1) self.filepaths = {'welcome.xhtml': [], 'tahoe.css': []} if ver is not None: self.add_patch_filepaths() self.add_target_filepaths() if self.verbosity > 3: print('DEBUG: Data dir is: %s' % self.datadir) print('DEBUG: Tahoe web dir is: %s' % self.webdir) if ver is not None and self.is_compatible_version: print('DEBUG: File paths:') print(self.filepaths)
def __init__(self, verbosity=0): self.verbosity = verbosity self.tempdir = tempfile.mkdtemp() if self.verbosity > 2: print('DEBUG: tempdir is: %s' % self.tempdir) # check for pandoc and markdown # find template locations self.datadir = find_datadir()
def parse_args(argv): """Parse options given on the command line.""" default_config = parse_config_files(argv) # 3. Argparse # defaults to values from Configparser parser = argparse.ArgumentParser() # actions action_opts = parser.add_argument_group( 'Actions', 'These arguments control which actions will be executed.') action_opts.add_argument('-s', '--sync-introducers', action = 'store_true', dest = "sync", default = False, help = "Synchronize the local list of introducers with the " "subscription's.") action_opts.add_argument('-m', '--merge-introducers', action = 'store_true', dest = "merge", default = False, help = 'Downloads and merges list of introducers into your ' 'local list.') action_opts.add_argument('-n', '--download-news', action = 'store_true', dest = "news", default = False, help = 'Downloads news feed.') action_opts.add_argument('-r', '--repair', action = 'store_true', dest = "repair", default = False, help = 'Retrieve a list of shares and maintain/repair them. ' 'Repairs I2P community shares by default.') action_opts.add_argument('--check-version', '--check-update', action = 'store_true', dest = "check_version", default = False, help = 'Check for a new version of grid-updates.') action_opts.add_argument('--download-update', '--update', action = 'store_true', dest = "download_update", default = False, help = 'Download a new version of grid-updates.') action_opts.add_argument('--patch-tahoe', action = 'store_true', dest = "patch_ui", default = False, help = ('Patch the Tahoe Web UI to display grid-updates news ' 'in an IFrame.')) action_opts.add_argument('--undo-patch-tahoe', action = 'store_true', dest = "undo_patch_ui", default = False, help = 'Restore the original Tahoe Web console files.') action_opts.add_argument('--make-news', action = 'store', dest = "news_source_file", help = 'Compile a grid-updates-compatible NEWS.tgz file from' ' a Markdown file.') parser.add_argument_group(action_opts) # options other_opts = parser.add_argument_group( 'Options', 'These arguments can override various settings.') other_opts.add_argument('-d', '--node-directory', action = 'store', dest = "tahoe_node_dir", default = default_config['tahoe_node_dir'], help = 'Specify the Tahoe node directory.') other_opts.add_argument('-u', '--node-url', action = 'store', dest = 'tahoe_node_url', help = "Specify the Tahoe gateway node's URL.") other_opts.add_argument('--list-uri', action = 'store', dest = 'list_uri', default = default_config['list_uri'], help = 'Override default location of introducers list.') other_opts.add_argument('--news-uri', action = 'store', dest = 'news_uri', default = default_config['news_uri'], help = 'Override default location of news list.') other_opts.add_argument('--script-uri', action = 'store', dest = 'script_uri', default = default_config['script_uri'], help = 'Override default location of script releases.') other_opts.add_argument('--repairlist-uri', action = 'store', dest = 'repairlist_uri', default = default_config['repairlist_uri'], help = ('Override default location of additional repair ' 'subscription.')) other_opts.add_argument('--format', action = 'store', dest = 'update_format', default = 'tar', help = ('Specify in which format to download the update.')) other_opts.add_argument('-o', '--output-dir', action = 'store', dest = 'output_dir', default = default_config['output_dir'], help = ('Override default output directory (%s) for script ' 'update downloads and NEWS.tgz generation.' % os.getcwd())) parser.add_argument_group(other_opts) # remaining parser.add_argument('-v', action='count', dest='verbosity', default=1, help = 'Increase verbosity (-vv for debug mode).') parser.add_argument('-q', action='store_const', const=0, dest='verbosity', help = 'Turn off verbosity.') parser.add_argument('-V', '--version', dest = "version", action = "store_true", default = False, help = 'Display version information.') # Fake option: this option will not be accessed directly; --config is used # for ConfigParser (see above); this entry exists here for completeness of # --help parser.add_argument('-c', '--config', action = 'store', dest = 'config', help = 'Manually specify a configuration file.') # parse arguments opts = parser.parse_args() # DEBUG if opts.verbosity > 2: print('DEBUG: The following options have been set:') for opt in [ 'tahoe_node_dir', 'tahoe_node_url', 'list_uri', 'news_uri', 'script_uri', 'repairlist_uri', 'output_dir']: print('%16s: %s' % (opt, vars(opts)[opt])) print("DEBUG: Patch directory is:", find_datadir()) return opts