(fl Flags)
| 94 | } |
| 95 | |
| 96 | func cmdRemovePackage(fl Flags) (int, error) { |
| 97 | if len(fl.Args()) == 0 { |
| 98 | return caddy.ExitCodeFailedStartup, fmt.Errorf("at least one package name must be specified") |
| 99 | } |
| 100 | _, nonstandard, _, err := getModules() |
| 101 | if err != nil { |
| 102 | return caddy.ExitCodeFailedStartup, fmt.Errorf("unable to enumerate installed plugins: %v", err) |
| 103 | } |
| 104 | pluginPkgs, err := getPluginPackages(nonstandard) |
| 105 | if err != nil { |
| 106 | return caddy.ExitCodeFailedStartup, err |
| 107 | } |
| 108 | |
| 109 | for _, arg := range fl.Args() { |
| 110 | module, _, err := splitModule(arg) |
| 111 | if err != nil { |
| 112 | return caddy.ExitCodeFailedStartup, fmt.Errorf("invalid module name: %v", err) |
| 113 | } |
| 114 | if _, ok := pluginPkgs[module]; !ok { |
| 115 | // package does not exist |
| 116 | return caddy.ExitCodeFailedStartup, fmt.Errorf("package is not added") |
| 117 | } |
| 118 | delete(pluginPkgs, arg) |
| 119 | } |
| 120 | |
| 121 | return upgradeBuild(pluginPkgs, fl) |
| 122 | } |
| 123 | |
| 124 | func upgradeBuild(pluginPkgs map[string]pluginPackage, fl Flags) (int, error) { |
| 125 | l := caddy.Log() |
nothing calls this directly
no test coverage detected