mirror of
https://github.com/containers/podman.git
synced 2025-05-23 18:17:53 +08:00

The linter ensures a common code style. - use switch/case instead of else if - use if instead of switch/case for single case statement - add space between comment and text - detect the use of defer with os.Exit() - use short form var += "..." instead of var = var + "..." - detect problems with append() ``` newSlice := append(orgSlice, val) ``` This could lead to nasty bugs because the orgSlice will be changed in place if it has enough capacity too hold the new elements. Thus we newSlice might not be a copy. Of course most of the changes are just cosmetic and do not cause any logic errors but I think it is a good idea to enforce a common style. This should help maintainability. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package specgenutil
|
|
|
|
import (
|
|
"github.com/containers/common/pkg/config"
|
|
"github.com/containers/podman/v4/pkg/domain/entities"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// validate determines if the flags and values given by the user are valid. things checked
|
|
// by validate must not need any state information on the flag (i.e. changed)
|
|
func validate(c *entities.ContainerCreateOptions) error {
|
|
var ()
|
|
if c.Rm && (c.Restart != "" && c.Restart != "no" && c.Restart != "on-failure") {
|
|
return errors.Errorf(`the --rm option conflicts with --restart, when the restartPolicy is not "" and "no"`)
|
|
}
|
|
|
|
if _, err := config.ParsePullPolicy(c.Pull); err != nil {
|
|
return err
|
|
}
|
|
|
|
var imageVolType = map[string]string{
|
|
"bind": "",
|
|
"tmpfs": "",
|
|
"ignore": "",
|
|
}
|
|
if _, ok := imageVolType[c.ImageVolume]; !ok {
|
|
switch {
|
|
case c.IsInfra:
|
|
c.ImageVolume = "bind"
|
|
case c.IsClone: // the image volume type will be deduced later from the container we are cloning
|
|
return nil
|
|
default:
|
|
return errors.Errorf("invalid image-volume type %q. Pick one of bind, tmpfs, or ignore", c.ImageVolume)
|
|
}
|
|
}
|
|
return nil
|
|
}
|