diff --git a/distribusi/cli.py b/distribusi/cli.py index 1d00df8..cb07b2b 100644 --- a/distribusi/cli.py +++ b/distribusi/cli.py @@ -94,6 +94,12 @@ def build_argparser(): help="Enable unfolding detecting .unfolding", action="store_true") + parser.add_argument( + '--latest-first', + help="sort file/folders to be latest object comes earlier", + action="store_true", + ) + return parser diff --git a/distribusi/distribusi.py b/distribusi/distribusi.py index 1b87c89..3749fac 100644 --- a/distribusi/distribusi.py +++ b/distribusi/distribusi.py @@ -111,10 +111,13 @@ def write_index(args,index, html, html_head, html_footer): def render_dir(args, root): + reverse = False + if args.latest_first: + reverse = True + html = [] - #for name in sorted(os.listdir(root)): - for name in sorted(os.listdir(root),reverse=True): + for name in sorted(os.listdir(root),reverse=reverse): if args.no_hidden: if name.startswith('.'): @@ -213,6 +216,11 @@ def render_dir(args, root): def distribusify(args, directory): # noqa + + reverse = False + if args.latest_first: + reverse = True + for root, dirs, files in os.walk(directory): if args.exclude_directory: @@ -237,8 +245,7 @@ def distribusify(args, directory): # noqa if args.verbose: print('Generating directory listing for', root) - #for name in sorted(files): - for name in sorted(files,reverse=True): + for name in sorted(files,reverse=reverse): if 'index.html' not in name: full_path = os.path.join(root, name) @@ -308,8 +315,7 @@ def distribusify(args, directory): # noqa else: html.append('../') - #for name in dirs: - for name in sorted(dirs,reverse=True): + for name in sorted(dirs,reverse=reverse): #check - time string m = PATTERN_TSTR.search(name)