def on_file(self, name): if name.startswith('_') or name.endswith('.wiki'): return False dir = os.getcwd() path = os.path.join(dir, name) if path == wikiutil.fixFileNameCase(os.path.join(self.root, os.path.normcase(config.filename))) or \ path == wikiutil.fixFileNameCase(os.path.join(self.root, os.path.normcase(config.general.generator))): return False # Accept the file for upload / Reject from removal. return True
def on_file(self, name): if name.startswith("_") or name.endswith(".wiki"): return False dir = os.getcwd() path = os.path.join(dir, name) if path == wikiutil.fixFileNameCase( os.path.join(self.root, os.path.normcase(config.filename)) ) or path == wikiutil.fixFileNameCase(os.path.join(self.root, os.path.normcase(config.general.generator))): return False # Accept the file for upload / Reject from removal. return True
def main(): usage = 'usage: %prog [options] [pagename ...]' version = '%%prog %s (%s)' % (__version__, __date__) optparser = OptionParser(usage=usage, version=version) optparser.add_option('-m', '--make', action='store_true', help='build modified pages') optparser.add_option('-b', '--build', action='store_true', help='build all pages') optparser.add_option('-c', '--clean', action='store_true', help='remove html files') optparser.add_option( '-s', '--synchronize', action='store_true', help='upload modified files to the FTP ' 'server; wiki files are not uploded; subdirectories *ARE* uploaded; requires ftputil library; FTP ' 'has to be configured using the config file; this switch can be combined with any of the above ' 'three') optparser.add_option( '-f', '--force', action='store_true', help='when used together with --synchronize, ' 'causes the files and directories that does not exist locally to be deleted from the FTP server' ) optparser.add_option('-d', '--directory', dest='dir', help='wiki directory, defaults to current directory', default='.') optparser.add_option( '-g', '--config', help='name of the config file relative to the wiki directory, ' 'defaults to _statwiki.config', default='_statwiki.config') options, args = optparser.parse_args() a = [ name for name, value in options.__dict__.items() if name in ('make', 'build', 'clean') and value ] if len(a) > 1: sys.exit( 'error: only one of --make, --build and --clean switches can be used at once' ) try: mode = a[0] except IndexError: if options.synchronize: # if only --synchronize was specified, do nothing besides syncing mode = 'idle' else: sys.exit( 'error: one of the --make, --build, --clean or --synchronize switches must ' 'be specified; use --help for more information') os.chdir(options.dir) config.parse(wikiutil.fixFileNameCase(options.config)) if args: # Add .wiki to the names if needed. wikipages = [] for name in args: if not name.endswith('.wiki'): name = wikiutil.pageName2inputFile(name) wikipages.append(wikiutil.fixFileNameCase(name)) else: wikipages = [ x for x in os.listdir('.') if x.endswith('.wiki') and not x.startswith('_') ] if mode == 'clean': print 'Cleaning...' for filename in wikipages: pagename = wikiutil.inputFile2pageName(filename) try: os.unlink(wikiutil.pageName2outputFile(pagename)) print wikiutil.pageName2outputFile(pagename) except OSError: pass elif mode == 'make': print 'Making...' todo = [] for filename in wikipages: ofilename = wikiutil.inputFile2outputFile(filename) if not os.path.exists(ofilename) or \ os.path.getmtime(ofilename) < os.path.getmtime(filename): todo.append(filename) process(todo) elif mode == 'build': print 'Building...' process(wikipages) if options.synchronize: print 'Synchronizing with %s...' % getattr(config.ftp, 'host', '???') try: host = config.ftp.host except AttributeError: sys.exit( 'cannot synchronize, configure the FTP server access first') # Import ftpsync only if --synchronize was specified so that ftputil doesn't have to be # installed if this option is not used. from ftpsync import synchronize synchronize(options.force) elif options.force: sys.exit('error: --force can only be used together with --synchronize')
def main(): usage = 'usage: %prog [options] [pagename ...]' version = '%%prog %s (%s)' % (__version__, __date__) optparser = OptionParser(usage=usage, version=version) optparser.add_option('-m', '--make', action='store_true', help='build modified pages') optparser.add_option('-b', '--build', action='store_true', help='build all pages') optparser.add_option('-c', '--clean', action='store_true', help='remove html files') optparser.add_option('-s', '--synchronize', action='store_true', help='upload modified files to the FTP ' 'server; wiki files are not uploded; subdirectories *ARE* uploaded; requires ftputil library; FTP ' 'has to be configured using the config file; this switch can be combined with any of the above ' 'three') optparser.add_option('-f', '--force', action='store_true', help='when used together with --synchronize, ' 'causes the files and directories that does not exist locally to be deleted from the FTP server') optparser.add_option('-d', '--directory', dest='dir', help='wiki directory, defaults to current directory', default='.') optparser.add_option('-g', '--config', help='name of the config file relative to the wiki directory, ' 'defaults to _statwiki.config', default='_statwiki.config') options, args = optparser.parse_args() a = [name for name, value in options.__dict__.items() if name in ('make', 'build', 'clean') and value] if len(a) > 1: sys.exit('error: only one of --make, --build and --clean switches can be used at once') try: mode = a[0] except IndexError: if options.synchronize: # if only --synchronize was specified, do nothing besides syncing mode = 'idle' else: sys.exit('error: one of the --make, --build, --clean or --synchronize switches must ' 'be specified; use --help for more information') os.chdir(options.dir) config.parse(wikiutil.fixFileNameCase(options.config)) if args: # Add .wiki to the names if needed. wikipages = [] for name in args: if not name.endswith('.wiki'): name = wikiutil.pageName2inputFile(name) wikipages.append(wikiutil.fixFileNameCase(name)) else: wikipages = [x for x in os.listdir('.') if x.endswith('.wiki') and not x.startswith('_')] if mode == 'clean': print 'Cleaning...' for filename in wikipages: pagename = wikiutil.inputFile2pageName(filename) try: os.unlink(wikiutil.pageName2outputFile(pagename)) print wikiutil.pageName2outputFile(pagename) except OSError: pass elif mode == 'make': print 'Making...' todo = [] for filename in wikipages: ofilename = wikiutil.inputFile2outputFile(filename) if not os.path.exists(ofilename) or \ os.path.getmtime(ofilename) < os.path.getmtime(filename): todo.append(filename) process(todo) elif mode == 'build': print 'Building...' process(wikipages) if options.synchronize: print 'Synchronizing with %s...' % getattr(config.ftp, 'host', '???') try: host = config.ftp.host except AttributeError: sys.exit('cannot synchronize, configure the FTP server access first') # Import ftpsync only if --synchronize was specified so that ftputil doesn't have to be # installed if this option is not used. from ftpsync import synchronize synchronize(options.force) elif options.force: sys.exit('error: --force can only be used together with --synchronize')