Skip to content

Commit

Permalink
Combine the code of dealing with 'readonly' and 'ro'.
Browse files Browse the repository at this point in the history
containers#6380 (comment)

Signed-off-by: Charles Shih <[email protected]>
  • Loading branch information
schrht committed Jun 2, 2020
1 parent d6bf6b9 commit 9f08881
Showing 1 changed file with 7 additions and 22 deletions.
29 changes: 7 additions & 22 deletions cmd/podman/common/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,36 +209,21 @@ func getBindMount(args []string) (spec.Mount, error) {
switch kv[0] {
case "bind-nonrecursive":
newMount.Options = append(newMount.Options, "bind")
case "readonly", "read-only":
if setRORW {
return newMount, errors.Wrapf(optionArgError, "cannot pass 'readonly', 'ro', or 'rw' options more than once")
}
setRORW = true
switch len(kv) {
case 1:
newMount.Options = append(newMount.Options, "ro")
case 2:
switch strings.ToLower(kv[1]) {
case "true":
newMount.Options = append(newMount.Options, "ro")
case "false":
// RW is default, so do nothing
default:
return newMount, errors.Wrapf(optionArgError, "readonly must be set to true or false, instead received %q", kv[1])
}
default:
return newMount, errors.Wrapf(optionArgError, "badly formatted option %q", val)
}
case "ro", "rw":
case "readonly", "ro", "rw":
if setRORW {
return newMount, errors.Wrapf(optionArgError, "cannot pass 'readonly', 'ro', or 'rw' options more than once")
}
setRORW = true
// Can be formatted as one of:
// readonly
// readonly=[true|false]
// ro
// ro=[true|false]
// rw
// rw=[true|false]
if kv[0] == "readonly" {
kv[0] = "ro"
}
switch len(kv) {
case 1:
newMount.Options = append(newMount.Options, kv[0])
Expand All @@ -253,7 +238,7 @@ func getBindMount(args []string) (spec.Mount, error) {
newMount.Options = append(newMount.Options, "ro")
}
default:
return newMount, errors.Wrapf(optionArgError, "%s must be set to true or false, instead received %q", kv[0], kv[1])
return newMount, errors.Wrapf(optionArgError, "'readonly', 'ro', or 'rw' must be set to true or false, instead received %q", kv[1])
}
default:
return newMount, errors.Wrapf(optionArgError, "badly formatted option %q", val)
Expand Down

0 comments on commit 9f08881

Please sign in to comment.