forbid bad compression levels
(instead of allowing -1 and treating it as "use default") License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
Steven Allen committed
Jan 20, 2018 at 00:55 UTC
2f964d40e8519dd7bb6447eb7e7084da0be9592c
1 file changed
+3
-3
core/commands/get.go
+3
-3
@@ -46,7 +46,7 @@ may also specify the level of compression by specifying '-l=<1-9>'.
46
cmdkit.StringOption("output", "o", "The path where the output should be stored."),
47
cmdkit.BoolOption("archive", "a", "Output a TAR archive."),
48
cmdkit.BoolOption("compress", "C", "Compress the output with GZIP compression."),
49
- cmdkit.IntOption("compression-level", "l", "The level of compression (1-9).").WithDefault(-1),
49
+ cmdkit.IntOption("compression-level", "l", "The level of compression (1-9)."),
50
},
51
PreRun: func(req *cmds.Request, env cmds.Environment) error {
52
_, err := getCompressOptions(req)
@@ -257,11 +257,11 @@ func (gw *getWriter) writeExtracted(r io.Reader, fpath string) error {
257
258
func getCompressOptions(req *cmds.Request) (int, error) {
259
cmprs, _ := req.Options["compress"].(bool)
260
- cmplvl, _ := req.Options["compression-level"].(int)
260
+ cmplvl, cmplvlFound := req.Options["compression-level"].(int)
261
switch {
262
case !cmprs:
263
return gzip.NoCompression, nil
264
- case cmprs && cmplvl == -1:
264
+ case cmprs && !cmplvlFound:
265
return gzip.DefaultCompression, nil
266
case cmprs && (cmplvl < 1 || cmplvl > 9):
267
return gzip.NoCompression, ErrInvalidCompressionLevel