@@ -30,6 +30,7 @@ const (
3030 FLAG_HELP_ME string = "This help"
3131 FLAG_HELP_CACHE string = "Erase cache only"
3232 FLAG_HELP_PROFILE string = "Erase profile junk only"
33+ FLAG_HELP_SIZE string = "Select size reporting mode (Std, SI, IEC)"
3334 FLAG_HELP_LOG string = "Enable log output"
3435)
3536
5152 *-----------------------------------------------------------------*/
5253
5354type BrowserWipe struct {
54- cleaner browsers.IBrowsers
55+ cleaner browsers.IBrowsers
56+ SizeMode cmn.SizeMode
5557}
5658
5759/* ----------------------------------------------------------------
@@ -72,16 +74,16 @@ func (b *BrowserWipe) Scan() {
7274 }
7375
7476 for _ , br := range supportedBrowsers {
75- b .GetCleaner (br , "" )
77+ b .GetCleaner (br , "" , b . SizeMode )
7678 b .cleaner .Tell ()
7779 installed := b .cleaner .IdentifyAppDataRoot ()
7880 fmt .Printf ("\t Installed: %t\n " , installed )
7981 }
8082}
8183
82- func (b * BrowserWipe ) GetCleaner (which browsers.Browser , profile string ) error {
84+ func (b * BrowserWipe ) GetCleaner (which browsers.Browser , profile string , mode cmn. SizeMode ) error {
8385 if which == browsers .ChromiumBrowser {
84- b .cleaner = chromium .NewChromiumCleaner (profile , cmn . SizeModeIEC , logx )
86+ b .cleaner = chromium .NewChromiumCleaner (profile , mode , logx )
8587 return nil
8688 }
8789
@@ -128,6 +130,7 @@ func help() {
128130 fmt .Printf (HELP_TEMPLATE , "-c" , "-cache" , "" , FLAG_HELP_CACHE )
129131 fmt .Printf (HELP_TEMPLATE , "-p" , "-profile" , "" , FLAG_HELP_PROFILE )
130132 fmt .Printf (HELP_TEMPLATE , "-b" , "-browser" , "BROWSER" , FLAG_HELP_BROWSER )
133+ fmt .Printf (HELP_TEMPLATE , "-z" , "-size" , "Std" , FLAG_HELP_SIZE )
131134 fmt .Printf (HELP_TEMPLATE , "-s" , "-scan" , "" , FLAG_HELP_SCAN )
132135 fmt .Printf (HELP_TEMPLATE , "" , "-log" , "" , FLAG_HELP_LOG )
133136
@@ -155,7 +158,7 @@ func die(exitCode int, msgformat string, v ...any) {
155158// Usage: wipechromium -p 'Profile 1'
156159func main () {
157160 // A. Command-line options
158- var profile , browserName string
161+ var profile , browserName , szmodeS string
159162 var cacheOnly , profileOnly , logging , scanOnly , helpme bool
160163 flag .StringVar (& browserName , "b" , browsers .ChromiumBrowser .String (), FLAG_HELP_BROWSER )
161164 flag .StringVar (& browserName , "browser" , browsers .ChromiumBrowser .String (), FLAG_HELP_BROWSER )
@@ -169,6 +172,8 @@ func main() {
169172 flag .BoolVar (& cacheOnly , "cache" , false , FLAG_HELP_CACHE )
170173 flag .BoolVar (& profileOnly , "p" , false , FLAG_HELP_PROFILE )
171174 flag .BoolVar (& profileOnly , "profile" , false , FLAG_HELP_PROFILE )
175+ flag .StringVar (& szmodeS , "size" , "Std" , FLAG_HELP_SIZE )
176+ flag .StringVar (& szmodeS , "z" , "Std" , FLAG_HELP_SIZE )
172177 flag .BoolVar (& logging , "log" , false , FLAG_HELP_LOG )
173178 flag .Parse ()
174179
@@ -202,29 +207,47 @@ func main() {
202207 die (2 , "Not a supported browser %q" , browserName )
203208 }
204209
205- // (b.5) Conditional Logging
210+ // (b.5) Size reporting mode
211+ var sizeMode cmn.SizeMode
212+ switch strings .ToLower (szmodeS ) {
213+ case "si" :
214+ sizeMode = cmn .SizeModeSI
215+ break
216+ case "iec" :
217+ sizeMode = cmn .SizeModeIEC
218+ break
219+ case "std" :
220+ sizeMode = cmn .SizeModeStd
221+ break
222+ default :
223+ die (3 , "Invalid size mode (SI|IEC|STD) %q" , szmodeS )
224+ }
225+
226+ // (b.6) Conditional Logging
206227 logx = cmn .NewConditionalLogger (logging , "Main" )
207228
208- // (b.6 ) Prologue
229+ // (b.7 ) Prologue
209230 if ! scanOnly {
210231 fmt .Printf ("Browser name : %s\n " , browser )
211232 fmt .Printf ("Profile name : %s\n " , profile )
212233 fmt .Printf ("Erase cache : %t\n " , cacheOnly )
213234 fmt .Printf ("Erase profile : %t\n " , profileOnly )
235+ fmt .Printf ("Size mode : %s\n " , sizeMode )
214236 fmt .Printf ("Logging enable: %t\n " , logging )
215237 }
216238
217239 // C. Execute
218240 runner := & BrowserWipe {}
241+ runner .SizeMode = sizeMode
219242 if scanOnly {
220243 runner .Scan ()
221244 } else {
222- if err := runner .GetCleaner (browser , profile ); err == nil {
245+ if err := runner .GetCleaner (browser , profile , sizeMode ); err == nil {
223246 if code , err := runner .Run (cacheOnly , profileOnly ); err != nil {
224247 die (code , err .Error ())
225248 }
226249 } else {
227- die (3 , err .Error ())
250+ die (4 , err .Error ())
228251 }
229252 }
230253
0 commit comments