diff --git a/web_serving/SimpleWebPage.py b/web_serving/SimpleWebPage.py index 92f5a59..408837d 100755 --- a/web_serving/SimpleWebPage.py +++ b/web_serving/SimpleWebPage.py @@ -22,20 +22,45 @@ def setup(): parser.add_argument("-p",action="store_false",dest="parent",default=True, help="Do no print .. link for parent folder.") parser.add_argument("--version",action='version', version=VERSION) - parser.add_argument("startpath",type=str,action="store",default=os.path.abspath('.'),nargs='?', + parser.add_argument("path",type=str,action="store",default=os.path.abspath('.'),nargs='?', help="Root path of the index") options=parser.parse_args() - options.startpath=os.path.abspath(options.startpath) + options.path=os.path.abspath(options.path) if options.title==None: - options.title=os.path.basename(options.startpath) + options.title=os.path.basename(options.path) return options +def setup2HTML(opts): + return ''%";".join([ + 'hidden=%s'%opts.hidden, + 'parent=%s'%opts.parent, + 'title=%s'%urllib.quote(opts.title) + ]) + +def HTML2setup(opts): + f=open(os.path.join(opts.path,opts.filename), 'rt') + try: + for l in f.readlines(): + if l.find('name="SimpleWebPageSetup"')>-1: + content=l[l.find('name="SimpleWebPageSetup"'):] + for s in content.split('"')[3].split(";"): + (k,v)=s.split('=',1) + if k=='hidden': opts.hidden=v=="True" + if k=='parent': opts.parent=v=="True" + if k=='title': opts.title=urllib.unquote(v) + print("Reading options from existing "+opts.filename) + break + except: + pass + return opts + def generate_index(opts): - for path,dirs,files in os.walk(opts.startpath): + for path,dirs,files in os.walk(opts.path): if opts.filename in files: if not opts.overwrite: print(opts.filename+" exists") sys.exit(1) + opts=HTML2setup(opts) files = [ f for f in files if f != opts.filename] if not opts.hidden: files = [ f for f in files if not f.startswith(".")] @@ -43,7 +68,7 @@ def generate_index(opts): f=open(os.path.join(path,opts.filename),'wt') dirs.sort() files.sort() - f.write(get_header(opts.title)) + f.write(get_header(opts)) if opts.parent: f.write(get_pathlink(path,'..')) for di in dirs: @@ -67,12 +92,14 @@ def get_pathlink(path,dname): fdstr=time.strftime("%Y/%m/%d %H:%M:%S",fdate) return '