diff --git a/distribusi/cli.py b/distribusi/cli.py
index 4bc0305..0d45ebf 100644
--- a/distribusi/cli.py
+++ b/distribusi/cli.py
@@ -64,8 +64,13 @@ def build_argparser():
'--exclude-directory',
help="Exclude one or multiple directories from indexing",
nargs="*",
- metavar='DIR'
- )
+ metavar='DIR')
+
+ parser.add_argument(
+ '-f',
+ '--force',
+ help="Force whether distribusi overwrites or removes instances of index.html not generated by distribusi, use at own risk!",
+ action="store_true")
return parser
diff --git a/distribusi/distribusi.py b/distribusi/distribusi.py
index 5292f1a..024c1a4 100644
--- a/distribusi/distribusi.py
+++ b/distribusi/distribusi.py
@@ -69,14 +69,37 @@ def div(args, type_, subtype, tag, name):
def check_distribusi_index(args, index):
+ """
+ check whether a index.html file is generated by distribusi
+ """
+
+ if not args.force:
+ with open(index, 'r') as f:
+ if '' in f.read():
+ return True
+ else:
+ if args.verbose:
+ print(index, 'not generated by distribusi, skipping')
+ return False
+ elif args.force:
+ return True
+
+def write_index(args,index, html, html_head, html_footer):
+ with open(index, 'w') as f:
+ if not args.no_template:
+ if args.style:
+ fs = open(args.style, "r")
+ style = fs.read()
+ styled_html_head = html_head % style
+ else:
+ styled_html_head = html_head % ''
+ f.write(styled_html_head)
- with open(index, 'r') as f:
- if '' in f.read():
- return True
- else:
- if args.verbose:
- print(index, 'not generated by distribusi, skipping')
- return False
+ for line in html:
+ f.write(line + '\n')
+
+ if not args.no_template:
+ f.write(html_footer)
def distribusify(args, directory): # noqa
@@ -153,23 +176,11 @@ def distribusify(args, directory): # noqa
index = os.path.join(root, 'index.html')
if os.path.exists(index):
if check_distribusi_index(args, index):
- pass
- else:
- with open(os.path.join(root, 'index.html'), 'w') as f:
- if not args.no_template:
- if args.style:
- fs = open(args.style, "r")
- style = fs.read()
- styled_html_head = html_head % style
- else:
- styled_html_head = html_head % ''
- f.write(styled_html_head)
-
- for line in html:
- f.write(line + '\n')
-
- if not args.no_template:
- f.write(html_footer)
+ write_index(args,index,html, html_head, html_footer)
+ elif not os.path.exists(index):
+ write_index(args,index,html, html_head, html_footer)
+
+
if args.remove_index:
index = os.path.join(root, 'index.html')