From 793cd20cc81c13bfd96f383c9a0e9f10b56bad3c Mon Sep 17 00:00:00 2001 From: goar5670 Date: Sun, 20 Mar 2022 00:17:08 +0300 Subject: [PATCH] Add basic --inode flag --- lib/colorls/core.rb | 11 ++++++++--- lib/colorls/flags.rb | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/colorls/core.rb b/lib/colorls/core.rb index 49673bc..8f2e27b 100644 --- a/lib/colorls/core.rb +++ b/lib/colorls/core.rb @@ -26,8 +26,7 @@ module ColorLS class Core def initialize(all: false, sort: false, show: false, - mode: nil, git_status: false, almost_all: false, colors: [], group: nil, - reverse: false, hyperlink: false, tree_depth: nil, show_group: true, show_user: true, + reverse: false, hyperlink: false, tree_depth: nil, show_inode: false, show_group: true, show_user: true, indicator_style: 'slash', time_style: '') @count = {folders: 0, recognized_files: 0, unrecognized_files: 0} @all = all @@ -38,6 +37,7 @@ module ColorLS @group = group @show = show @one_per_line = mode == :one_per_line + @show_inode = show_inode init_long_format(mode,show_group,show_user) @tree = {mode: mode == :tree, depth: tree_depth} @horizontal = mode == :horizontal @@ -298,6 +298,11 @@ module ColorLS end end + def get_inode(content) + return '' unless @show_inode + content.stats.ino.to_s + end + def long_info(content) return '' unless @long @@ -336,7 +341,7 @@ module ColorLS entry = "#{out_encode(logo)} #{out_encode(name)}" entry = entry.bright if !content.directory? && content.executable? - "#{long_info(content)} #{git_info(content)} #{entry.colorize(color)}#{symlink_info(content)}" + "#{get_inode(content)} #{long_info(content)} #{git_info(content)} #{entry.colorize(color)}#{symlink_info(content)}" end def ls_line(chunk, widths) diff --git a/lib/colorls/flags.rb b/lib/colorls/flags.rb index 2a64973..d877afe 100644 --- a/lib/colorls/flags.rb +++ b/lib/colorls/flags.rb @@ -105,6 +105,7 @@ module ColorLS git_status: false, colors: [], tree_depth: 3, + show_inode: false, show_group: true, show_user: true, indicator_style: 'slash', @@ -143,6 +144,7 @@ module ColorLS options.on('-f', '--files', 'show only files') { @opts[:show] = :files } options.on('--gs', '--git-status', 'show git status for each file') { @opts[:git_status] = true } options.on('-p', 'append / indicator to directories') { @opts[:indicator_style] = 'slash' } + options.on('-i', '--inode', 'show inode number') { @opts[:show_inode] = true } options.on('--report=[WORD]', %w[short long], 'show report: short, long (default if omitted)') do |word| word ||= :long @report_mode = word.to_sym