Add Settings

This commit is contained in:
Don
2019-12-18 16:04:13 -08:00
parent 865dc14eac
commit ed46e39b10
2 changed files with 76 additions and 4 deletions
+67 -3
View File
@@ -12,18 +12,82 @@ import (
)
const (
// Add all the flag names here as const strings.
usernameFlag = "username"
passwordFlag = "password"
emailFlag = "email"
tokenFlag = "token"
registryFlag = "registry"
folderFlag = "folder"
failOnVersionConflictFlag = "fail-on-version-conflict"
tagFlag = "tag"
accessFlag = "access"
)
// settingsFlags has the cli.Flags for the plugin.Settings.
func settingsFlags() []cli.Flag {
// Replace below with all the flags required for the plugin's specific
// settings.
return []cli.Flag{}
return []cli.Flag{
&cli.StringFlag{
Name: usernameFlag,
Usage: "NPM username",
EnvVars: []string{"PLUGIN_USERNAME", "NPM_USERNAME"},
},
&cli.StringFlag{
Name: passwordFlag,
Usage: "NPM password",
EnvVars: []string{"PLUGIN_PASSWORD", "NPM_PASSWORD"},
},
&cli.StringFlag{
Name: emailFlag,
Usage: "NPM email",
EnvVars: []string{"PLUGIN_EMAIL", "NPM_EMAIL"},
},
&cli.StringFlag{
Name: tokenFlag,
Usage: "NPM deploy token",
EnvVars: []string{"PLUGIN_TOKEN", "NPM_TOKEN"},
},
&cli.StringFlag{
Name: registryFlag,
Usage: "NPM registry",
EnvVars: []string{"PLUGIN_REGISTRY", "NPM_REGISTRY"},
},
&cli.StringFlag{
Name: folderFlag,
Usage: "folder containing package.json",
EnvVars: []string{"PLUGIN_FOLDER"},
},
&cli.BoolFlag{
Name: failOnVersionConflictFlag,
Usage: "fail NPM publish if version already exists in NPM registry",
EnvVars: []string{"PLUGIN_FAIL_ON_VERSION_CONFLICT"},
},
&cli.StringFlag{
Name: tagFlag,
Usage: "NPM publish tag",
EnvVars: []string{"PLUGIN_TAG"},
},
&cli.StringFlag{
Name: accessFlag,
Usage: "NPM scoped package access",
EnvVars: []string{"PLUGIN_ACCESS"},
},
}
}
// settingsFromContext creates a plugin.Settings from the cli.Context.
func settingsFromContext(ctx *cli.Context) npm.Settings {
// Replace below with the parsing of the
return npm.Settings{}
return npm.Settings{
Username: ctx.String(usernameFlag),
Password: ctx.String(passwordFlag),
Token: ctx.String(tokenFlag),
Email: ctx.String(emailFlag),
Registry: ctx.String(registryFlag),
Folder: ctx.String(folderFlag),
FailOnVersionConflict: ctx.Bool(failOnVersionConflictFlag),
Tag: ctx.String(tagFlag),
Access: ctx.String(accessFlag),
}
}
+9 -1
View File
@@ -7,7 +7,15 @@ package npm
// Settings for the Plugin.
type Settings struct {
// Fill in the data structure with appropriate values
Username string
Password string
Token string
Email string
Registry string
Folder string
FailOnVersionConflict bool
Tag string
Access string
}
func (p *pluginImpl) Validate() error {