diff options
author | Yorhel <git@yorhel.nl> | 2021-10-06 09:21:13 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2021-10-06 09:21:13 +0200 |
commit | 88c8f13c351a33d5a66f74f834d1692ff3708645 (patch) | |
tree | cb148c55db472e3d74d80fd724c0c77b71c400a4 | |
parent | 900d31f6fd733227be88f1480c0c78f84f2ed9bb (diff) |
Add CLI options for default sort
-rw-r--r-- | ncdu.pod | 14 | ||||
-rw-r--r-- | src/main.zig | 30 |
2 files changed, 43 insertions, 1 deletions
@@ -230,6 +230,20 @@ Set to I<off> to disable the shared size column for directories, I<shared> to display unique directory sizes as a separate column. These options can also be cycled through in the browser with the 'u' key. +=item --sort I<COLUMN> + +Change the default column to sort on. Accepted values are I<disk-usage> (the +default), I<name>, I<apparent-size>, I<itemcount> or I<mtime>. The latter only +makes sense in extended mode, see C<-e>. + +The column can be suffixed with I<-asc> or I<-desc> to set the order to +ascending or descending, respectively. e.g. C<--sort=name-desc> will sort by +name in descending order. + +=item --group-directories-first, --no-group-directories-first + +Sort (or not) directories before files. + =item --confirm-quit, --no-confirm-quit Require a confirmation before quitting ncdu. Very helpful when you accidentally diff --git a/src/main.zig b/src/main.zig index 710f947..86237c4 100644 --- a/src/main.zig +++ b/src/main.zig @@ -305,7 +305,35 @@ pub fn main() void { else if(opt.is("--hide-graph")) config.show_graph = false else if(opt.is("--show-percent")) config.show_percent = true else if(opt.is("--hide-percent")) config.show_percent = false - else if(opt.is("--shared-column")) { + else if(opt.is("--group-directories-first")) config.sort_dirsfirst = true + else if(opt.is("--no-group-directories-first")) config.sort_dirsfirst = false + else if(opt.is("--sort")) { + var val: []const u8 = args.arg(); + var ord: ?config.SortOrder = null; + if (std.mem.endsWith(u8, val, "-asc")) { + val = val[0..val.len-4]; + ord = .asc; + } else if (std.mem.endsWith(u8, val, "-desc")) { + val = val[0..val.len-5]; + ord = .desc; + } + if (std.mem.eql(u8, val, "name")) { + config.sort_col = .name; + config.sort_order = ord orelse .asc; + } else if (std.mem.eql(u8, val, "disk-usage")) { + config.sort_col = .blocks; + config.sort_order = ord orelse .desc; + } else if (std.mem.eql(u8, val, "apparent-size")) { + config.sort_col = .size; + config.sort_order = ord orelse .desc; + } else if (std.mem.eql(u8, val, "itemcount")) { + config.sort_col = .items; + config.sort_order = ord orelse .desc; + } else if (std.mem.eql(u8, val, "mtime")) { + config.sort_col = .mtime; + config.sort_order = ord orelse .asc; + } else ui.die("Unknown --sort option: {s}.\n", .{val}); + } else if(opt.is("--shared-column")) { const val = args.arg(); if (std.mem.eql(u8, val, "off")) config.show_shared = .off else if (std.mem.eql(u8, val, "shared")) config.show_shared = .shared |