@@ -21,13 +21,14 @@ var (
2121 flagHideTime = flag .Bool ("hide-time" , false , "Hide the time taken?" )
2222 flagHideValue = flag .Bool ("hide-value" , false , "Hide the tracker value?" )
2323 flagNumTrackers = flag .Int ("num-trackers" , 13 , "Number of Trackers" )
24- flagShowSpeed = flag .Bool ("show-speed" , false , "Show the tracker speed?" )
25- flagShowSpeedOverall = flag .Bool ("show-speed-overall" , false , "Show the overall tracker speed?" )
26- flagShowPinned = flag .Bool ("show-pinned" , false , "Show a pinned message?" )
2724 flagRandomFail = flag .Bool ("rnd-fail" , false , "Introduce random failures in tracking" )
2825 flagRandomDefer = flag .Bool ("rnd-defer" , false , "Introduce random deferred starts" )
2926 flagRandomRemove = flag .Bool ("rnd-remove" , false , "Introduce random remove of trackers on completion" )
3027 flagRandomLogs = flag .Bool ("rnd-logs" , false , "Output random logs in the middle of tracking" )
28+ flagSortBy = flag .String ("sort-by" , "percent-dsc" , "Sort trackers by? (none, index, index-dsc, message, message-dsc, percent, percent-dsc, value, value-dsc)" )
29+ flagShowSpeed = flag .Bool ("show-speed" , false , "Show the tracker speed?" )
30+ flagShowSpeedOverall = flag .Bool ("show-speed-overall" , false , "Show the overall tracker speed?" )
31+ flagShowPinned = flag .Bool ("show-pinned" , false , "Show a pinned message?" )
3132
3233 messageColors = []text.Color {
3334 text .FgRed ,
@@ -100,6 +101,31 @@ func getMessage(idx int64, units *progress.Units) string {
100101 return message
101102}
102103
104+ func getSortBy () progress.SortBy {
105+ switch * flagSortBy {
106+ case "none" :
107+ return progress .SortByNone
108+ case "index" :
109+ return progress .SortByIndex
110+ case "index-dsc" :
111+ return progress .SortByIndexDsc
112+ case "message" :
113+ return progress .SortByMessage
114+ case "message-dsc" :
115+ return progress .SortByMessageDsc
116+ case "percent" :
117+ return progress .SortByPercent
118+ case "percent-dsc" :
119+ return progress .SortByPercentDsc
120+ case "value" :
121+ return progress .SortByValue
122+ case "value-dsc" :
123+ return progress .SortByValueDsc
124+ default :
125+ return progress .SortByPercentDsc
126+ }
127+ }
128+
103129func getUnits (idx int64 ) * progress.Units {
104130 var units * progress.Units
105131 switch {
@@ -123,6 +149,7 @@ func trackSomething(pw progress.Writer, idx int64, updateMessage bool) {
123149 message := getMessage (idx , units )
124150 tracker := progress.Tracker {
125151 DeferStart : * flagRandomDefer && rng .Float64 () < 0.5 ,
152+ Index : uint64 (idx ),
126153 Message : message ,
127154 RemoveOnCompletion : * flagRandomRemove && rng .Float64 () < 0.25 ,
128155 Total : total ,
@@ -175,7 +202,7 @@ func main() {
175202 pw .SetAutoStop (* flagAutoStop )
176203 pw .SetMessageLength (24 )
177204 pw .SetNumTrackersExpected (* flagNumTrackers )
178- pw .SetSortBy (progress . SortByPercentDsc )
205+ pw .SetSortBy (getSortBy () )
179206 pw .SetStyle (progress .StyleDefault )
180207 pw .SetTrackerLength (25 )
181208 pw .SetTrackerPosition (progress .PositionRight )
0 commit comments