@@ -11,8 +11,6 @@ import (
11
11
)
12
12
13
13
var (
14
- columns = table.Row {"Mounted on" , "Size" , "Used" , "Avail" , "Use%" , "Type" , "Filesystem" }
15
-
16
14
colorRed = term .Color ("#E88388" )
17
15
colorYellow = term .Color ("#DBAB79" )
18
16
colorGreen = term .Color ("#A8CC8C" )
@@ -52,17 +50,25 @@ func stringToColumn(s string) (int, error) {
52
50
case "mountpoint" :
53
51
return 1 , nil
54
52
case "size" :
55
- return 8 , nil
53
+ return 12 , nil
56
54
case "used" :
57
- return 9 , nil
55
+ return 13 , nil
58
56
case "avail" :
59
- return 10 , nil
57
+ return 14 , nil
60
58
case "usage" :
61
- return 11 , nil
59
+ return 15 , nil
60
+ case "inodes" :
61
+ return 16 , nil
62
+ case "inodes_used" :
63
+ return 17 , nil
64
+ case "inodes_avail" :
65
+ return 18 , nil
66
+ case "inodes_usage" :
67
+ return 19 , nil
62
68
case "type" :
63
- return 6 , nil
69
+ return 10 , nil
64
70
case "filesystem" :
65
- return 7 , nil
71
+ return 11 , nil
66
72
67
73
default :
68
74
return 0 , fmt .Errorf ("unknown column identifier: %s" , s )
@@ -125,7 +131,7 @@ func barTransformer(val interface{}) string {
125
131
return s .String ()
126
132
}
127
133
128
- func printTable (title string , m []Mount , sortBy int ) {
134
+ func printTable (title string , m []Mount , sortBy int , inodes bool ) {
129
135
tab := table .NewWriter ()
130
136
tab .SetAllowedRowLength (int (* width ))
131
137
tab .SetOutputMirror (os .Stdout )
@@ -153,41 +159,59 @@ func printTable(title string, m []Mount, sortBy int) {
153
159
154
160
tab .SetColumnConfigs ([]table.ColumnConfig {
155
161
{Number : 1 , WidthMax : int (float64 (cols ) * 0.4 )},
156
- {Number : 2 , Transformer : sizeTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
157
- {Number : 3 , Transformer : sizeTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
158
- {Number : 4 , Transformer : spaceTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
159
- {Number : 5 , Transformer : barTransformer , AlignHeader : text .AlignCenter },
160
- {Number : 6 , WidthMax : int (float64 (cols ) * 0.2 )},
161
- {Number : 7 , WidthMax : int (float64 (cols ) * 0.4 )},
162
- {Number : 8 , Hidden : true }, // sortBy helper for size
163
- {Number : 9 , Hidden : true }, // sortBy helper for used
164
- {Number : 10 , Hidden : true }, // sortBy helper for avail
165
- {Number : 11 , Hidden : true }, // sortBy helper for usage
162
+ {Number : 2 , Hidden : inodes , Transformer : sizeTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
163
+ {Number : 3 , Hidden : inodes , Transformer : sizeTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
164
+ {Number : 4 , Hidden : inodes , Transformer : spaceTransformer , Align : text .AlignRight , AlignHeader : text .AlignRight },
165
+ {Number : 5 , Hidden : inodes , Transformer : barTransformer , AlignHeader : text .AlignCenter },
166
+ {Number : 6 , Hidden : ! inodes , Align : text .AlignRight , AlignHeader : text .AlignRight },
167
+ {Number : 7 , Hidden : ! inodes , Align : text .AlignRight , AlignHeader : text .AlignRight },
168
+ {Number : 8 , Hidden : ! inodes , Align : text .AlignRight , AlignHeader : text .AlignRight },
169
+ {Number : 9 , Hidden : ! inodes , Transformer : barTransformer , AlignHeader : text .AlignCenter },
170
+ {Number : 10 , WidthMax : int (float64 (cols ) * 0.2 )},
171
+ {Number : 11 , WidthMax : int (float64 (cols ) * 0.4 )},
172
+ {Number : 12 , Hidden : true }, // sortBy helper for size
173
+ {Number : 13 , Hidden : true }, // sortBy helper for used
174
+ {Number : 14 , Hidden : true }, // sortBy helper for avail
175
+ {Number : 15 , Hidden : true }, // sortBy helper for usage
176
+ {Number : 16 , Hidden : true }, // sortBy helper for inodes size
177
+ {Number : 17 , Hidden : true }, // sortBy helper for inodes used
178
+ {Number : 18 , Hidden : true }, // sortBy helper for inodes avail
179
+ {Number : 19 , Hidden : true }, // sortBy helper for inodes usage
166
180
})
167
181
168
- tab .AppendHeader (columns )
182
+ tab .AppendHeader (table. Row { "Mounted on" , "Size" , "Used" , "Avail" , "Use%" , "Inodes" , "Used" , "Avail" , "Use%" , "Type" , "Filesystem" } )
169
183
170
184
for _ , v := range m {
171
185
// spew.Dump(v)
172
186
173
- // render progress-bar
174
- var usage float64
187
+ var usage , inodeUsage float64
175
188
if v .Total > 0 {
176
189
usage = float64 (v .Used ) / float64 (v .Total )
177
190
}
191
+ if v .InodesTotal > 0 {
192
+ inodeUsage = float64 (v .InodesUsed ) / float64 (v .InodesTotal )
193
+ }
178
194
179
195
tab .AppendRow ([]interface {}{
180
196
termenv .String (v .Mountpoint ).Foreground (colorBlue ), // mounted on
181
- v .Total , // size
182
- v .Used , // used
183
- v .Free , // avail
184
- usage , // use%
197
+ v .Total , // size
198
+ v .Used , // used
199
+ v .Free , // avail
200
+ usage , // use%
201
+ v .InodesTotal , // size
202
+ v .InodesUsed , // used
203
+ v .InodesFree , // avail
204
+ inodeUsage , // use%
185
205
termenv .String (v .Fstype ).Foreground (colorGray ), // type
186
206
termenv .String (v .Device ).Foreground (colorGray ), // filesystem
187
- v .Total , // size sorting helper
188
- v .Used , // used sorting helper
189
- v .Free , // avail sorting helper
190
- usage , // use% sorting helper
207
+ v .Total , // size sorting helper
208
+ v .Used , // used sorting helper
209
+ v .Free , // avail sorting helper
210
+ usage , // use% sorting helper
211
+ v .InodesTotal , // size sorting helper
212
+ v .InodesUsed , // used sorting helper
213
+ v .InodesFree , // avail sorting helper
214
+ inodeUsage , // use% sorting helper
191
215
})
192
216
}
193
217
@@ -203,7 +227,7 @@ func printTable(title string, m []Mount, sortBy int) {
203
227
204
228
//tab.AppendFooter(table.Row{fmt.Sprintf("%d %s", tab.Length(), title)})
205
229
sortMode := table .Asc
206
- if sortBy >= 8 && sortBy <= 11 {
230
+ if sortBy >= 12 {
207
231
sortMode = table .AscNumeric
208
232
}
209
233
0 commit comments