allow overwriting indexes, only when previous was also generated with simplewebpage

This commit is contained in:
ville rantanen
2018-12-07 15:19:59 +02:00
parent 2fafb46f41
commit b46b9f30ef

View File

@@ -16,7 +16,7 @@ def setup():
epilog = "Recursively generate indexes: \n# find . -type d -not -path '*/.*' -exec SimpleWebPage -f \{\} \;" epilog = "Recursively generate indexes: \n# find . -type d -not -path '*/.*' -exec SimpleWebPage -f \{\} \;"
) )
parser.add_argument("-f",action="store_true",dest="overwrite",default=False, parser.add_argument("-f",action="store_true",dest="overwrite",default=False,
help="Overwrite existing index file.") help="Overwrite existing index file, even if it's not generated with SimpleWebPage. By default, if file is generated with SimpleWebPage it will be overwritten!")
parser.add_argument("-H",action="store_true",dest="hidden",default=False, parser.add_argument("-H",action="store_true",dest="hidden",default=False,
help="Show hidden files") help="Show hidden files")
parser.add_argument("-t",type=str,dest="title",default=None, parser.add_argument("-t",type=str,dest="title",default=None,
@@ -46,46 +46,50 @@ def setup2HTML(opts):
]) ])
def HTML2setup(opts): def HTML2setup(opts):
f = open(os.path.join(opts.path,opts.filename), 'rt') """ returns new opts and was it able to read HTML """
try: try:
for l in f.readlines(): read_config = False
if l.find('name="SimpleWebPageSetup"') > -1: with open(os.path.join(opts.path,opts.filename), 'rt') as f:
content = l[l.find('name="SimpleWebPageSetup"'):] for l in f.readlines():
for s in content.split('"')[3].split(";"): if l.find('<meta name="SimpleWebPageSetup"') > -1:
(k,v) = s.split('=',1) content = l[l.find('name="SimpleWebPageSetup"'):]
if k == 'hidden': opts.hidden = v == "True" for s in content.split('"')[3].split(";"):
if k == 'parent': opts.parent = v == "True" (k,v) = s.split('=',1)
if k == 'title': opts.title = urllib.unquote(v) if k == 'hidden': opts.hidden = v == "True"
if k == 'images': opts.images = v == "True" if k == 'parent': opts.parent = v == "True"
print("Reading options from existing " + opts.filename) if k == 'title': opts.title = urllib.unquote(v)
break if k == 'images': opts.images = v == "True"
read_config = True
print("Reading options from existing " + opts.filename)
break
return (opts, read_config)
except: except:
pass return (opts, False)
return opts
def generate_index(opts): def generate_index(opts):
for path,dirs,files in os.walk(opts.path): for path,dirs, files in os.walk(opts.path):
existing_config = False
if opts.filename in files: if opts.filename in files:
if not opts.overwrite: opts, existing_config = HTML2setup(opts)
print(opts.filename+" exists") if not existing_config and not opts.overwrite:
print(opts.filename + " exists, and not generated with SimpleWebPage. Exiting.")
sys.exit(1) sys.exit(1)
opts = HTML2setup(opts)
files = [ f for f in files if f != opts.filename] files = [ f for f in files if f != opts.filename]
if not opts.hidden: if not opts.hidden:
files = [ f for f in files if not f.startswith(".")] files = [ f for f in files if not f.startswith(".")]
dirs = [ d for d in dirs if not d.startswith(".")] dirs = [ d for d in dirs if not d.startswith(".")]
f = open(os.path.join(path,opts.filename),'wt')
dirs.sort() dirs.sort()
files.sort() files.sort()
f.write(get_header(opts)) with open(os.path.join(path,opts.filename), 'wt') as f:
if opts.parent: f.write(get_header(opts))
f.write(get_pathlink(path, '..')) if opts.parent:
for di in dirs: f.write(get_pathlink(path, '..'))
f.write(get_pathlink(path, di)) for di in dirs:
for fi in files: f.write(get_pathlink(path, di))
f.write(get_filelink(path, fi, opts.images)) for fi in files:
f.write(get_footer()) f.write(get_filelink(path, fi, opts.images))
f.close() f.write(get_footer())
f.close()
return return
def get_filelink(path,fname,images=False): def get_filelink(path,fname,images=False):