From 2e87209ad2dc1943721e0dff587571912cdde875 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:40:51 +0900 Subject: [PATCH] Move Meta to cmd package --- cmd/mailfull/cmd_aliasdomainadd.go | 5 +++-- cmd/mailfull/cmd_aliasdomaindel.go | 5 +++-- cmd/mailfull/cmd_aliasdomains.go | 5 +++-- cmd/mailfull/cmd_aliasuseradd.go | 5 +++-- cmd/mailfull/cmd_aliasuserdel.go | 5 +++-- cmd/mailfull/cmd_aliasusermod.go | 5 +++-- cmd/mailfull/cmd_aliasusers.go | 3 ++- cmd/mailfull/cmd_catchall.go | 3 ++- cmd/mailfull/cmd_catchallset.go | 3 ++- cmd/mailfull/cmd_catchallunset.go | 3 ++- cmd/mailfull/cmd_commit.go | 3 ++- cmd/mailfull/cmd_domainadd.go | 3 ++- cmd/mailfull/cmd_domaindel.go | 3 ++- cmd/mailfull/cmd_domaindisable.go | 3 ++- cmd/mailfull/cmd_domainenable.go | 3 ++- cmd/mailfull/cmd_domains.go | 3 ++- cmd/mailfull/cmd_genconfig.go | 3 ++- cmd/mailfull/cmd_init.go | 3 ++- cmd/mailfull/cmd_useradd.go | 3 ++- cmd/mailfull/cmd_usercheckpw.go | 3 ++- cmd/mailfull/cmd_userdel.go | 3 ++- cmd/mailfull/cmd_userpasswd.go | 3 ++- cmd/mailfull/cmd_users.go | 3 ++- cmd/mailfull/main.go | 19 ++++++++++++++++++- cmd/mailfull/meta.go | 30 ------------------------------ cmd/meta.go | 20 ++++++++++++++++++++ 26 files changed, 90 insertions(+), 60 deletions(-) delete mode 100644 cmd/mailfull/meta.go create mode 100644 cmd/meta.go diff --git a/cmd/mailfull/cmd_aliasdomainadd.go b/cmd/mailfull/cmd_aliasdomainadd.go index 1310c1e..8f567d6 100644 --- a/cmd/mailfull/cmd_aliasdomainadd.go +++ b/cmd/mailfull/cmd_aliasdomainadd.go @@ -3,12 +3,13 @@ package main import ( "fmt" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasDomainAdd represents a CmdAliasDomainAdd. type CmdAliasDomainAdd struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasdomaindel.go b/cmd/mailfull/cmd_aliasdomaindel.go index a20635d..1cd408b 100644 --- a/cmd/mailfull/cmd_aliasdomaindel.go +++ b/cmd/mailfull/cmd_aliasdomaindel.go @@ -3,12 +3,13 @@ package main import ( "fmt" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasDomainDel represents a CmdAliasDomainDel. type CmdAliasDomainDel struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasdomains.go b/cmd/mailfull/cmd_aliasdomains.go index 30f41f2..8c3cdd7 100644 --- a/cmd/mailfull/cmd_aliasdomains.go +++ b/cmd/mailfull/cmd_aliasdomains.go @@ -4,12 +4,13 @@ import ( "fmt" "sort" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasDomains represents a CmdAliasDomains. type CmdAliasDomains struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasuseradd.go b/cmd/mailfull/cmd_aliasuseradd.go index aaf83a1..1fbde7a 100644 --- a/cmd/mailfull/cmd_aliasuseradd.go +++ b/cmd/mailfull/cmd_aliasuseradd.go @@ -4,12 +4,13 @@ import ( "fmt" "strings" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasUserAdd represents a CmdAliasUserAdd. type CmdAliasUserAdd struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasuserdel.go b/cmd/mailfull/cmd_aliasuserdel.go index 45b172b..e16e7d6 100644 --- a/cmd/mailfull/cmd_aliasuserdel.go +++ b/cmd/mailfull/cmd_aliasuserdel.go @@ -4,12 +4,13 @@ import ( "fmt" "strings" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasUserDel represents a CmdAliasUserDel. type CmdAliasUserDel struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasusermod.go b/cmd/mailfull/cmd_aliasusermod.go index 95e8932..adeab62 100644 --- a/cmd/mailfull/cmd_aliasusermod.go +++ b/cmd/mailfull/cmd_aliasusermod.go @@ -4,12 +4,13 @@ import ( "fmt" "strings" - mailfull "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasUserMod represents a CmdAliasUserMod. type CmdAliasUserMod struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_aliasusers.go b/cmd/mailfull/cmd_aliasusers.go index c43a7f0..e0d60c9 100644 --- a/cmd/mailfull/cmd_aliasusers.go +++ b/cmd/mailfull/cmd_aliasusers.go @@ -5,11 +5,12 @@ import ( "sort" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdAliasUsers represents a CmdAliasUsers. type CmdAliasUsers struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_catchall.go b/cmd/mailfull/cmd_catchall.go index 8de4bd5..974fc7b 100644 --- a/cmd/mailfull/cmd_catchall.go +++ b/cmd/mailfull/cmd_catchall.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdCatchAll represents a CmdCatchAll. type CmdCatchAll struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_catchallset.go b/cmd/mailfull/cmd_catchallset.go index 8191cf5..f89fc2c 100644 --- a/cmd/mailfull/cmd_catchallset.go +++ b/cmd/mailfull/cmd_catchallset.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdCatchAllSet represents a CmdCatchAllSet. type CmdCatchAllSet struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_catchallunset.go b/cmd/mailfull/cmd_catchallunset.go index e4f6b5e..7f2d204 100644 --- a/cmd/mailfull/cmd_catchallunset.go +++ b/cmd/mailfull/cmd_catchallunset.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdCatchAllUnset represents a CmdCatchAllUnset. type CmdCatchAllUnset struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_commit.go b/cmd/mailfull/cmd_commit.go index a47384d..9ed6f20 100644 --- a/cmd/mailfull/cmd_commit.go +++ b/cmd/mailfull/cmd_commit.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdCommit represents a CmdCommit. type CmdCommit struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_domainadd.go b/cmd/mailfull/cmd_domainadd.go index 5c93dbc..86dd129 100644 --- a/cmd/mailfull/cmd_domainadd.go +++ b/cmd/mailfull/cmd_domainadd.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdDomainAdd represents a CmdDomainAdd. type CmdDomainAdd struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_domaindel.go b/cmd/mailfull/cmd_domaindel.go index a558938..f546ebc 100644 --- a/cmd/mailfull/cmd_domaindel.go +++ b/cmd/mailfull/cmd_domaindel.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdDomainDel represents a CmdDomainDel. type CmdDomainDel struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_domaindisable.go b/cmd/mailfull/cmd_domaindisable.go index f1dd946..c30fb69 100644 --- a/cmd/mailfull/cmd_domaindisable.go +++ b/cmd/mailfull/cmd_domaindisable.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdDomainDisable represents a CmdDomainDisable. type CmdDomainDisable struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_domainenable.go b/cmd/mailfull/cmd_domainenable.go index 13e05a3..55ab058 100644 --- a/cmd/mailfull/cmd_domainenable.go +++ b/cmd/mailfull/cmd_domainenable.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdDomainEnable represents a CmdDomainEnable. type CmdDomainEnable struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_domains.go b/cmd/mailfull/cmd_domains.go index b2fc11f..22a761e 100644 --- a/cmd/mailfull/cmd_domains.go +++ b/cmd/mailfull/cmd_domains.go @@ -5,11 +5,12 @@ import ( "sort" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdDomains represents a CmdDomains. type CmdDomains struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_genconfig.go b/cmd/mailfull/cmd_genconfig.go index b533a12..3dedc0e 100644 --- a/cmd/mailfull/cmd_genconfig.go +++ b/cmd/mailfull/cmd_genconfig.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdGenConfig represents a CmdGenConfig. type CmdGenConfig struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_init.go b/cmd/mailfull/cmd_init.go index a43a7f5..9640b61 100644 --- a/cmd/mailfull/cmd_init.go +++ b/cmd/mailfull/cmd_init.go @@ -4,11 +4,12 @@ import ( "fmt" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdInit represents a CmdInit. type CmdInit struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_useradd.go b/cmd/mailfull/cmd_useradd.go index e8ca007..ad268b6 100644 --- a/cmd/mailfull/cmd_useradd.go +++ b/cmd/mailfull/cmd_useradd.go @@ -5,11 +5,12 @@ import ( "strings" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdUserAdd represents a CmdUserAdd. type CmdUserAdd struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_usercheckpw.go b/cmd/mailfull/cmd_usercheckpw.go index bb52261..5403eea 100644 --- a/cmd/mailfull/cmd_usercheckpw.go +++ b/cmd/mailfull/cmd_usercheckpw.go @@ -5,12 +5,13 @@ import ( "strings" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" "github.com/jsimonetti/pwscheme/ssha" ) // CmdUserCheckPw represents a CmdUserCheckPw. type CmdUserCheckPw struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_userdel.go b/cmd/mailfull/cmd_userdel.go index 260dbad..559fcec 100644 --- a/cmd/mailfull/cmd_userdel.go +++ b/cmd/mailfull/cmd_userdel.go @@ -5,11 +5,12 @@ import ( "strings" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdUserDel represents a CmdUserDel. type CmdUserDel struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_userpasswd.go b/cmd/mailfull/cmd_userpasswd.go index 0aa7790..38c113c 100644 --- a/cmd/mailfull/cmd_userpasswd.go +++ b/cmd/mailfull/cmd_userpasswd.go @@ -5,12 +5,13 @@ import ( "strings" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" "github.com/jsimonetti/pwscheme/ssha" ) // CmdUserPasswd represents a CmdUserPasswd. type CmdUserPasswd struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/cmd_users.go b/cmd/mailfull/cmd_users.go index e8b20f6..cb61bbe 100644 --- a/cmd/mailfull/cmd_users.go +++ b/cmd/mailfull/cmd_users.go @@ -5,11 +5,12 @@ import ( "sort" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" ) // CmdUsers represents a CmdUsers. type CmdUsers struct { - Meta + cmd.Meta } // Synopsis returns a one-line synopsis. diff --git a/cmd/mailfull/main.go b/cmd/mailfull/main.go index a4335ec..ca74d78 100644 --- a/cmd/mailfull/main.go +++ b/cmd/mailfull/main.go @@ -4,11 +4,14 @@ Command mailfull is a CLI application using the mailfull package. package main import ( + "bytes" + "flag" "fmt" "os" "path/filepath" "github.com/directorz/mailfull-go" + "github.com/directorz/mailfull-go/cmd" "github.com/mitchellh/cli" ) @@ -30,7 +33,7 @@ func main() { Args: os.Args[1:], } - meta := Meta{ + meta := cmd.Meta{ UI: &cli.BasicUi{ Reader: os.Stdin, Writer: os.Stdout, @@ -142,3 +145,17 @@ func main() { os.Exit(exitCode) } + +// noCommitFlag returns true if `pargs` has "-n" flag. +// `pargs` is overwrites with non-flag arguments. +func noCommitFlag(pargs *[]string) (bool, error) { + nFlag := false + + flagSet := flag.NewFlagSet("", flag.ContinueOnError) + flagSet.SetOutput(&bytes.Buffer{}) + flagSet.BoolVar(&nFlag, "n", nFlag, "") + err := flagSet.Parse(*pargs) + *pargs = flagSet.Args() + + return nFlag, err +} diff --git a/cmd/mailfull/meta.go b/cmd/mailfull/meta.go deleted file mode 100644 index b64a8e9..0000000 --- a/cmd/mailfull/meta.go +++ /dev/null @@ -1,30 +0,0 @@ -package main - -import ( - "bytes" - "flag" - - "github.com/mitchellh/cli" -) - -// Meta is for `*Command` struct. -type Meta struct { - UI *cli.BasicUi - CmdName string - SubCmdName string - Version string -} - -// noCommitFlag returns true if `pargs` has "-n" flag. -// `pargs` is overwrites with non-flag arguments. -func noCommitFlag(pargs *[]string) (bool, error) { - nFlag := false - - flagSet := flag.NewFlagSet("", flag.ContinueOnError) - flagSet.SetOutput(&bytes.Buffer{}) - flagSet.BoolVar(&nFlag, "n", nFlag, "") - err := flagSet.Parse(*pargs) - *pargs = flagSet.Args() - - return nFlag, err -} diff --git a/cmd/meta.go b/cmd/meta.go new file mode 100644 index 0000000..02e5334 --- /dev/null +++ b/cmd/meta.go @@ -0,0 +1,20 @@ +package cmd + +import ( + "fmt" + + "github.com/mitchellh/cli" +) + +// Meta contains options to execute a command. +type Meta struct { + UI *cli.BasicUi + CmdName string + SubCmdName string + Version string +} + +// Errorf prints the error to ErrorWriter with the prefix string. +func (m Meta) Errorf(format string, v ...interface{}) { + fmt.Fprintf(m.UI.ErrorWriter, "[ERR] "+format, v...) +}