From 3ac58569176afed5b4f60d1e8955eb16573e149e Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 10:43:07 +0900 Subject: [PATCH 01/11] Use golang/dep instead of glide #21 --- Gopkg.lock | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Gopkg.toml | 0 Makefile | 19 +++++++++++++++---- glide.lock | 22 ---------------------- glide.yaml | 7 ------- 5 files changed, 63 insertions(+), 33 deletions(-) create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml delete mode 100644 glide.lock delete mode 100644 glide.yaml diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 0000000..d3be0b9 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,48 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + name = "github.com/BurntSushi/toml" + packages = ["."] + revision = "99064174e013895bbd9b025c31100bd1d9b590ca" + version = "v0.3.0" + +[[projects]] + branch = "master" + name = "github.com/armon/go-radix" + packages = ["."] + revision = "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2" + +[[projects]] + name = "github.com/bgentry/speakeasy" + packages = ["."] + revision = "a1ccbf2c40dfc8ce514b5c5c6e6d1429ea6880da" + +[[projects]] + branch = "master" + name = "github.com/jsimonetti/pwscheme" + packages = ["ssha"] + revision = "76804708ecad54773871b35dbaa44f517973e395" + +[[projects]] + name = "github.com/mattn/go-isatty" + packages = ["."] + revision = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8" + +[[projects]] + branch = "master" + name = "github.com/mitchellh/cli" + packages = ["."] + revision = "fcf521421aa29bde1d93b6920dfce826d7932208" + +[[projects]] + name = "golang.org/x/sys" + packages = ["unix"] + revision = "8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "d88d2668ae10b500606e3ebb1e719897e62e423f5ede8e4b470d12c1d255fe31" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 0000000..e69de29 diff --git a/Makefile b/Makefile index 2e0bb08..428053c 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ GOVERSION=$(shell go version) -GOOS=$(word 1,$(subst /, ,$(lastword $(GOVERSION)))) -GOARCH=$(word 2,$(subst /, ,$(lastword $(GOVERSION)))) +THIS_GOOS=$(word 1,$(subst /, ,$(lastword $(GOVERSION)))) +THIS_GOARCH=$(word 2,$(subst /, ,$(lastword $(GOVERSION)))) +GOOS?=$(THIS_GOOS) +GOARCH?=$(THIS_GOARCH) +DIR_PKG=$(subst /src/github.com/directorz/mailfull-go,/pkg,$(PWD)) DIR_BUILD=build DIR_RELEASE=release VERSION=$(patsubst "%",%,$(lastword $(shell grep 'const Version' version.go))) @@ -9,8 +12,16 @@ VERSION=$(patsubst "%",%,$(lastword $(shell grep 'const Version' version.go))) default: build -installdeps: - glide install -v +$(DIR_BUILD)/bin/$(THIS_GOOS)_$(THIS_GOARCH)/dep: + mkdir -p /tmp/go + GOPATH=/tmp/go go get -d -v github.com/golang/dep + GOPATH=/tmp/go go build -v -o $(DIR_BUILD)/bin/$(THIS_GOOS)_$(THIS_GOARCH)/dep github.com/golang/dep/cmd/dep + rm -rf /tmp/go + +dep: $(DIR_BUILD)/bin/$(THIS_GOOS)_$(THIS_GOARCH)/dep + +installdeps: dep + $(DIR_BUILD)/bin/$(THIS_GOOS)_$(THIS_GOARCH)/dep ensure -v build: go build -v -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -o build/mailfull_$(GOOS)_$(GOARCH)/mailfull cmd/mailfull/mailfull.go diff --git a/glide.lock b/glide.lock deleted file mode 100644 index 76c8ba5..0000000 --- a/glide.lock +++ /dev/null @@ -1,22 +0,0 @@ -hash: 451657f03f297af9163863497cf6c2f60abfe12d88a282f5aab6deb865d91119 -updated: 2016-09-29T12:05:32.00075722+09:00 -imports: -- name: github.com/armon/go-radix - version: 4239b77079c7b5d1243b7b4736304ce8ddb6f0f2 -- name: github.com/bgentry/speakeasy - version: a1ccbf2c40dfc8ce514b5c5c6e6d1429ea6880da -- name: github.com/BurntSushi/toml - version: 99064174e013895bbd9b025c31100bd1d9b590ca -- name: github.com/jsimonetti/pwscheme - version: 76804708ecad54773871b35dbaa44f517973e395 - subpackages: - - ssha -- name: github.com/mattn/go-isatty - version: 66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8 -- name: github.com/mitchellh/cli - version: fcf521421aa29bde1d93b6920dfce826d7932208 -- name: golang.org/x/sys - version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 - subpackages: - - unix -testImports: [] diff --git a/glide.yaml b/glide.yaml deleted file mode 100644 index 00937dd..0000000 --- a/glide.yaml +++ /dev/null @@ -1,7 +0,0 @@ -package: github.com/directorz/mailfull-go -import: -- package: github.com/BurntSushi/toml -- package: github.com/jsimonetti/pwscheme - subpackages: - - ssha -- package: github.com/mitchellh/cli From 1daea44e49b553ccf4bb34c0312937579d0c31d6 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:01:55 +0900 Subject: [PATCH 02/11] Use golang:1.8.3 --- Makefile | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 428053c..407c5ef 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ DIR_PKG=$(subst /src/github.com/directorz/mailfull-go,/pkg,$(PWD)) DIR_BUILD=build DIR_RELEASE=release VERSION=$(patsubst "%",%,$(lastword $(shell grep 'const Version' version.go))) +GITTAG=$(shell git rev-parse --short HEAD) .PHONY: build build-linux-amd64 build-linux-386 clean @@ -24,17 +25,18 @@ installdeps: dep $(DIR_BUILD)/bin/$(THIS_GOOS)_$(THIS_GOARCH)/dep ensure -v build: - go build -v -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -o build/mailfull_$(GOOS)_$(GOARCH)/mailfull cmd/mailfull/mailfull.go + go build -v -i -ldflags "-X main.gittag=$(GITTAG)" -o $(DIR_BUILD)/mailfull_$(GOOS)_$(GOARCH)/mailfull cmd/mailfull/*.go + +.build-docker: + docker run --rm -v $(DIR_PKG):/go/pkg -v $(PWD):/go/src/github.com/directorz/mailfull-go -w /go/src/github.com/directorz/mailfull-go \ + -e GOOS=$(GOOS) -e GOARCH=$(GOARCH) golang:1.8.3 \ + go build -v -i -ldflags "-X main.gittag=$(GITTAG)" -o $(DIR_BUILD)/mailfull_$(GOOS)_$(GOARCH)/mailfull cmd/mailfull/*.go build-linux-amd64: - docker run --rm -v $(PWD):/go/src/github.com/directorz/mailfull-go -w /go/src/github.com/directorz/mailfull-go \ - -e GOOS=linux -e GOARCH=amd64 golang:1.7.4 \ - go build -v -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -o "build/mailfull_linux_amd64/mailfull" cmd/mailfull/mailfull.go + @$(MAKE) .build-docker GOOS=linux GOARCH=amd64 build-linux-386: - docker run --rm -v $(PWD):/go/src/github.com/directorz/mailfull-go -w /go/src/github.com/directorz/mailfull-go \ - -e GOOS=linux -e GOARCH=386 golang:1.7.4 \ - go build -v -ldflags "-X main.gittag=`git rev-parse --short HEAD`" -o "build/mailfull_linux_386/mailfull" cmd/mailfull/mailfull.go + @$(MAKE) .build-docker GOOS=linux GOARCH=386 release: release-linux-amd64 release-linux-386 From 5a64a543ca46fea90a5cd7623685c935286c2961 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:05:28 +0900 Subject: [PATCH 03/11] cosmetic --- doc/configuration.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/configuration.md b/doc/configuration.md index aa73a0d..649b1d7 100644 --- a/doc/configuration.md +++ b/doc/configuration.md @@ -3,10 +3,10 @@ Configuration `.mailfull/config` -| key | type | default | required | description | -|:----|:-----|:--------|:---------|:------------| -| dir_database | string | `"./etc"` | no | A relative path from repository dir (or a absolute path) | -| dir_maildata | string | `"./domains"` | no | A relative path from repository dir (or a absolute path) | -| username | string | The username who executed `mailfull init` | **yes** | It used for setting owner of database files and maildata files. | -| cmd_postalias | string | `"postalias"` | no | Command name or path | -| cmd_postmap | string | `"postmap"` | no | Command name or path | +| key | type | default | required | description | +|:--------------|:-------|:------------------------------------------|:---------|:----------------------------------------------------------------| +| dir_database | string | `"./etc"` | no | A relative path from repository dir (or a absolute path) | +| dir_maildata | string | `"./domains"` | no | A relative path from repository dir (or a absolute path) | +| username | string | The username who executed `mailfull init` | **yes** | It used for setting owner of database files and maildata files. | +| cmd_postalias | string | `"postalias"` | no | Command name or path | +| cmd_postmap | string | `"postmap"` | no | Command name or path | From 552ed95a0fb4c0791762c82e9919ad934da74bc9 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:19:25 +0900 Subject: [PATCH 04/11] Integrate subpackage --- cmd/mailfull/{command => }/aliasdomainadd.go | 2 +- cmd/mailfull/{command => }/aliasdomaindel.go | 2 +- cmd/mailfull/{command => }/aliasdomains.go | 2 +- cmd/mailfull/{command => }/aliasuseradd.go | 2 +- cmd/mailfull/{command => }/aliasuserdel.go | 2 +- cmd/mailfull/{command => }/aliasusermod.go | 2 +- cmd/mailfull/{command => }/aliasusers.go | 2 +- cmd/mailfull/{command => }/catchall.go | 2 +- cmd/mailfull/{command => }/catchallset.go | 2 +- cmd/mailfull/{command => }/catchallunset.go | 2 +- cmd/mailfull/{command => }/commit.go | 2 +- cmd/mailfull/{command => }/domainadd.go | 2 +- cmd/mailfull/{command => }/domaindel.go | 2 +- cmd/mailfull/{command => }/domaindisable.go | 2 +- cmd/mailfull/{command => }/domainenable.go | 2 +- cmd/mailfull/{command => }/domains.go | 2 +- cmd/mailfull/{command => }/genconfig.go | 2 +- cmd/mailfull/{command => }/init.go | 2 +- cmd/mailfull/mailfull.go | 49 ++++++++++---------- cmd/mailfull/{command => }/main.go | 2 +- cmd/mailfull/{command => }/useradd.go | 2 +- cmd/mailfull/{command => }/usercheckpw.go | 2 +- cmd/mailfull/{command => }/userdel.go | 2 +- cmd/mailfull/{command => }/userpasswd.go | 2 +- cmd/mailfull/{command => }/users.go | 2 +- 25 files changed, 48 insertions(+), 49 deletions(-) rename cmd/mailfull/{command => }/aliasdomainadd.go (99%) rename cmd/mailfull/{command => }/aliasdomaindel.go (98%) rename cmd/mailfull/{command => }/aliasdomains.go (98%) rename cmd/mailfull/{command => }/aliasuseradd.go (99%) rename cmd/mailfull/{command => }/aliasuserdel.go (99%) rename cmd/mailfull/{command => }/aliasusermod.go (99%) rename cmd/mailfull/{command => }/aliasusers.go (98%) rename cmd/mailfull/{command => }/catchall.go (98%) rename cmd/mailfull/{command => }/catchallset.go (99%) rename cmd/mailfull/{command => }/catchallunset.go (98%) rename cmd/mailfull/{command => }/commit.go (98%) rename cmd/mailfull/{command => }/domainadd.go (99%) rename cmd/mailfull/{command => }/domaindel.go (98%) rename cmd/mailfull/{command => }/domaindisable.go (99%) rename cmd/mailfull/{command => }/domainenable.go (99%) rename cmd/mailfull/{command => }/domains.go (98%) rename cmd/mailfull/{command => }/genconfig.go (98%) rename cmd/mailfull/{command => }/init.go (97%) rename cmd/mailfull/{command => }/main.go (97%) rename cmd/mailfull/{command => }/useradd.go (99%) rename cmd/mailfull/{command => }/usercheckpw.go (99%) rename cmd/mailfull/{command => }/userdel.go (99%) rename cmd/mailfull/{command => }/userpasswd.go (99%) rename cmd/mailfull/{command => }/users.go (98%) diff --git a/cmd/mailfull/command/aliasdomainadd.go b/cmd/mailfull/aliasdomainadd.go similarity index 99% rename from cmd/mailfull/command/aliasdomainadd.go rename to cmd/mailfull/aliasdomainadd.go index 2eb90d5..5cec85b 100644 --- a/cmd/mailfull/command/aliasdomainadd.go +++ b/cmd/mailfull/aliasdomainadd.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasdomaindel.go b/cmd/mailfull/aliasdomaindel.go similarity index 98% rename from cmd/mailfull/command/aliasdomaindel.go rename to cmd/mailfull/aliasdomaindel.go index 1310f93..c38f42f 100644 --- a/cmd/mailfull/command/aliasdomaindel.go +++ b/cmd/mailfull/aliasdomaindel.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasdomains.go b/cmd/mailfull/aliasdomains.go similarity index 98% rename from cmd/mailfull/command/aliasdomains.go rename to cmd/mailfull/aliasdomains.go index 62cbac7..bdc8856 100644 --- a/cmd/mailfull/command/aliasdomains.go +++ b/cmd/mailfull/aliasdomains.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasuseradd.go b/cmd/mailfull/aliasuseradd.go similarity index 99% rename from cmd/mailfull/command/aliasuseradd.go rename to cmd/mailfull/aliasuseradd.go index 9d6ee93..4cc004c 100644 --- a/cmd/mailfull/command/aliasuseradd.go +++ b/cmd/mailfull/aliasuseradd.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasuserdel.go b/cmd/mailfull/aliasuserdel.go similarity index 99% rename from cmd/mailfull/command/aliasuserdel.go rename to cmd/mailfull/aliasuserdel.go index 0eb5d12..8c628cd 100644 --- a/cmd/mailfull/command/aliasuserdel.go +++ b/cmd/mailfull/aliasuserdel.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasusermod.go b/cmd/mailfull/aliasusermod.go similarity index 99% rename from cmd/mailfull/command/aliasusermod.go rename to cmd/mailfull/aliasusermod.go index 459cd67..793b063 100644 --- a/cmd/mailfull/command/aliasusermod.go +++ b/cmd/mailfull/aliasusermod.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/aliasusers.go b/cmd/mailfull/aliasusers.go similarity index 98% rename from cmd/mailfull/command/aliasusers.go rename to cmd/mailfull/aliasusers.go index 036b23a..c2db6ff 100644 --- a/cmd/mailfull/command/aliasusers.go +++ b/cmd/mailfull/aliasusers.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/catchall.go b/cmd/mailfull/catchall.go similarity index 98% rename from cmd/mailfull/command/catchall.go rename to cmd/mailfull/catchall.go index 3c1db48..9bac493 100644 --- a/cmd/mailfull/command/catchall.go +++ b/cmd/mailfull/catchall.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/catchallset.go b/cmd/mailfull/catchallset.go similarity index 99% rename from cmd/mailfull/command/catchallset.go rename to cmd/mailfull/catchallset.go index 24acd67..0d86d23 100644 --- a/cmd/mailfull/command/catchallset.go +++ b/cmd/mailfull/catchallset.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/catchallunset.go b/cmd/mailfull/catchallunset.go similarity index 98% rename from cmd/mailfull/command/catchallunset.go rename to cmd/mailfull/catchallunset.go index a6f3fe9..60b7df0 100644 --- a/cmd/mailfull/command/catchallunset.go +++ b/cmd/mailfull/catchallunset.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/commit.go b/cmd/mailfull/commit.go similarity index 98% rename from cmd/mailfull/command/commit.go rename to cmd/mailfull/commit.go index 790b071..829a955 100644 --- a/cmd/mailfull/command/commit.go +++ b/cmd/mailfull/commit.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/domainadd.go b/cmd/mailfull/domainadd.go similarity index 99% rename from cmd/mailfull/command/domainadd.go rename to cmd/mailfull/domainadd.go index 1983d30..9744eb4 100644 --- a/cmd/mailfull/command/domainadd.go +++ b/cmd/mailfull/domainadd.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/domaindel.go b/cmd/mailfull/domaindel.go similarity index 98% rename from cmd/mailfull/command/domaindel.go rename to cmd/mailfull/domaindel.go index a8b9be9..0a4c782 100644 --- a/cmd/mailfull/command/domaindel.go +++ b/cmd/mailfull/domaindel.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/domaindisable.go b/cmd/mailfull/domaindisable.go similarity index 99% rename from cmd/mailfull/command/domaindisable.go rename to cmd/mailfull/domaindisable.go index c254c77..83a7d74 100644 --- a/cmd/mailfull/command/domaindisable.go +++ b/cmd/mailfull/domaindisable.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/domainenable.go b/cmd/mailfull/domainenable.go similarity index 99% rename from cmd/mailfull/command/domainenable.go rename to cmd/mailfull/domainenable.go index 6fff76d..5d4c924 100644 --- a/cmd/mailfull/command/domainenable.go +++ b/cmd/mailfull/domainenable.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/domains.go b/cmd/mailfull/domains.go similarity index 98% rename from cmd/mailfull/command/domains.go rename to cmd/mailfull/domains.go index 83b65d5..0d4ede2 100644 --- a/cmd/mailfull/command/domains.go +++ b/cmd/mailfull/domains.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/genconfig.go b/cmd/mailfull/genconfig.go similarity index 98% rename from cmd/mailfull/command/genconfig.go rename to cmd/mailfull/genconfig.go index e2a4b27..dfc8ab4 100644 --- a/cmd/mailfull/command/genconfig.go +++ b/cmd/mailfull/genconfig.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/init.go b/cmd/mailfull/init.go similarity index 97% rename from cmd/mailfull/command/init.go rename to cmd/mailfull/init.go index b915c7c..12ccd4d 100644 --- a/cmd/mailfull/command/init.go +++ b/cmd/mailfull/init.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/mailfull.go b/cmd/mailfull/mailfull.go index 905a77a..c2fb110 100644 --- a/cmd/mailfull/mailfull.go +++ b/cmd/mailfull/mailfull.go @@ -9,7 +9,6 @@ import ( "path/filepath" "github.com/directorz/mailfull-go" - "github.com/directorz/mailfull-go/cmd/mailfull/command" "github.com/mitchellh/cli" ) @@ -31,7 +30,7 @@ func main() { Args: os.Args[1:], } - meta := command.Meta{ + meta := Meta{ UI: &cli.BasicUi{ Reader: os.Stdin, Writer: os.Stdout, @@ -44,95 +43,95 @@ func main() { c.Commands = map[string]cli.CommandFactory{ "init": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.InitCommand{Meta: meta}, nil + return &InitCommand{Meta: meta}, nil }, "genconfig": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.GenConfigCommand{Meta: meta}, nil + return &GenConfigCommand{Meta: meta}, nil }, "domains": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.DomainsCommand{Meta: meta}, nil + return &DomainsCommand{Meta: meta}, nil }, "domainadd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.DomainAddCommand{Meta: meta}, nil + return &DomainAddCommand{Meta: meta}, nil }, "domaindel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.DomainDelCommand{Meta: meta}, nil + return &DomainDelCommand{Meta: meta}, nil }, "domaindisable": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.DomainDisableCommand{Meta: meta}, nil + return &DomainDisableCommand{Meta: meta}, nil }, "domainenable": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.DomainEnableCommand{Meta: meta}, nil + return &DomainEnableCommand{Meta: meta}, nil }, "aliasdomains": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasDomainsCommand{Meta: meta}, nil + return &AliasDomainsCommand{Meta: meta}, nil }, "aliasdomainadd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasDomainAddCommand{Meta: meta}, nil + return &AliasDomainAddCommand{Meta: meta}, nil }, "aliasdomaindel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasDomainDelCommand{Meta: meta}, nil + return &AliasDomainDelCommand{Meta: meta}, nil }, "users": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.UsersCommand{Meta: meta}, nil + return &UsersCommand{Meta: meta}, nil }, "useradd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.UserAddCommand{Meta: meta}, nil + return &UserAddCommand{Meta: meta}, nil }, "userdel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.UserDelCommand{Meta: meta}, nil + return &UserDelCommand{Meta: meta}, nil }, "userpasswd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.UserPasswdCommand{Meta: meta}, nil + return &UserPasswdCommand{Meta: meta}, nil }, "usercheckpw": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.UserCheckPwCommand{Meta: meta}, nil + return &UserCheckPwCommand{Meta: meta}, nil }, "aliasusers": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasUsersCommand{Meta: meta}, nil + return &AliasUsersCommand{Meta: meta}, nil }, "aliasuseradd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasUserAddCommand{Meta: meta}, nil + return &AliasUserAddCommand{Meta: meta}, nil }, "aliasusermod": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasUserModCommand{Meta: meta}, nil + return &AliasUserModCommand{Meta: meta}, nil }, "aliasuserdel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.AliasUserDelCommand{Meta: meta}, nil + return &AliasUserDelCommand{Meta: meta}, nil }, "catchall": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.CatchAllCommand{Meta: meta}, nil + return &CatchAllCommand{Meta: meta}, nil }, "catchallset": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.CatchAllSetCommand{Meta: meta}, nil + return &CatchAllSetCommand{Meta: meta}, nil }, "catchallunset": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.CatchAllUnsetCommand{Meta: meta}, nil + return &CatchAllUnsetCommand{Meta: meta}, nil }, "commit": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &command.CommitCommand{Meta: meta}, nil + return &CommitCommand{Meta: meta}, nil }, } diff --git a/cmd/mailfull/command/main.go b/cmd/mailfull/main.go similarity index 97% rename from cmd/mailfull/command/main.go rename to cmd/mailfull/main.go index 66be466..b64a8e9 100644 --- a/cmd/mailfull/command/main.go +++ b/cmd/mailfull/main.go @@ -1,4 +1,4 @@ -package command +package main import ( "bytes" diff --git a/cmd/mailfull/command/useradd.go b/cmd/mailfull/useradd.go similarity index 99% rename from cmd/mailfull/command/useradd.go rename to cmd/mailfull/useradd.go index 943f493..f97a04f 100644 --- a/cmd/mailfull/command/useradd.go +++ b/cmd/mailfull/useradd.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/usercheckpw.go b/cmd/mailfull/usercheckpw.go similarity index 99% rename from cmd/mailfull/command/usercheckpw.go rename to cmd/mailfull/usercheckpw.go index 4ef780a..7b673c0 100644 --- a/cmd/mailfull/command/usercheckpw.go +++ b/cmd/mailfull/usercheckpw.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/userdel.go b/cmd/mailfull/userdel.go similarity index 99% rename from cmd/mailfull/command/userdel.go rename to cmd/mailfull/userdel.go index 858b8ff..41ae12c 100644 --- a/cmd/mailfull/command/userdel.go +++ b/cmd/mailfull/userdel.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/userpasswd.go b/cmd/mailfull/userpasswd.go similarity index 99% rename from cmd/mailfull/command/userpasswd.go rename to cmd/mailfull/userpasswd.go index bbd724c..406cc28 100644 --- a/cmd/mailfull/command/userpasswd.go +++ b/cmd/mailfull/userpasswd.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" diff --git a/cmd/mailfull/command/users.go b/cmd/mailfull/users.go similarity index 98% rename from cmd/mailfull/command/users.go rename to cmd/mailfull/users.go index 2f5038d..b9b18c1 100644 --- a/cmd/mailfull/command/users.go +++ b/cmd/mailfull/users.go @@ -1,4 +1,4 @@ -package command +package main import ( "fmt" From b884655a7c291d439a93a259e26387b4d362e042 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:22:11 +0900 Subject: [PATCH 05/11] Renamed --- cmd/mailfull/mailfull.go | 144 ------------------------------------- cmd/mailfull/main.go | 150 ++++++++++++++++++++++++++++++++++----- cmd/mailfull/meta.go | 30 ++++++++ 3 files changed, 162 insertions(+), 162 deletions(-) delete mode 100644 cmd/mailfull/mailfull.go create mode 100644 cmd/mailfull/meta.go diff --git a/cmd/mailfull/mailfull.go b/cmd/mailfull/mailfull.go deleted file mode 100644 index c2fb110..0000000 --- a/cmd/mailfull/mailfull.go +++ /dev/null @@ -1,144 +0,0 @@ -/* -Command mailfull is a CLI application using the mailfull package. -*/ -package main - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/directorz/mailfull-go" - "github.com/mitchellh/cli" -) - -var ( - version = mailfull.Version - gittag = "" -) - -func init() { - if gittag != "" { - version = version + "-" + gittag - } -} - -func main() { - c := &cli.CLI{ - Name: filepath.Base(os.Args[0]), - Version: version, - Args: os.Args[1:], - } - - meta := Meta{ - UI: &cli.BasicUi{ - Reader: os.Stdin, - Writer: os.Stdout, - ErrorWriter: os.Stderr, - }, - CmdName: c.Name, - Version: c.Version, - } - - c.Commands = map[string]cli.CommandFactory{ - "init": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &InitCommand{Meta: meta}, nil - }, - "genconfig": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &GenConfigCommand{Meta: meta}, nil - }, - "domains": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &DomainsCommand{Meta: meta}, nil - }, - "domainadd": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &DomainAddCommand{Meta: meta}, nil - }, - "domaindel": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &DomainDelCommand{Meta: meta}, nil - }, - "domaindisable": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &DomainDisableCommand{Meta: meta}, nil - }, - "domainenable": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &DomainEnableCommand{Meta: meta}, nil - }, - "aliasdomains": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasDomainsCommand{Meta: meta}, nil - }, - "aliasdomainadd": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasDomainAddCommand{Meta: meta}, nil - }, - "aliasdomaindel": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasDomainDelCommand{Meta: meta}, nil - }, - "users": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &UsersCommand{Meta: meta}, nil - }, - "useradd": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &UserAddCommand{Meta: meta}, nil - }, - "userdel": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &UserDelCommand{Meta: meta}, nil - }, - "userpasswd": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &UserPasswdCommand{Meta: meta}, nil - }, - "usercheckpw": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &UserCheckPwCommand{Meta: meta}, nil - }, - "aliasusers": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasUsersCommand{Meta: meta}, nil - }, - "aliasuseradd": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasUserAddCommand{Meta: meta}, nil - }, - "aliasusermod": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasUserModCommand{Meta: meta}, nil - }, - "aliasuserdel": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &AliasUserDelCommand{Meta: meta}, nil - }, - "catchall": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &CatchAllCommand{Meta: meta}, nil - }, - "catchallset": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &CatchAllSetCommand{Meta: meta}, nil - }, - "catchallunset": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &CatchAllUnsetCommand{Meta: meta}, nil - }, - "commit": func() (cli.Command, error) { - meta.SubCmdName = c.Subcommand() - return &CommitCommand{Meta: meta}, nil - }, - } - - exitCode, err := c.Run() - if err != nil { - fmt.Fprintf(meta.UI.ErrorWriter, "%v\n", err) - } - - os.Exit(exitCode) -} diff --git a/cmd/mailfull/main.go b/cmd/mailfull/main.go index b64a8e9..c2fb110 100644 --- a/cmd/mailfull/main.go +++ b/cmd/mailfull/main.go @@ -1,30 +1,144 @@ +/* +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/mitchellh/cli" ) -// Meta is for `*Command` struct. -type Meta struct { - UI *cli.BasicUi - CmdName string - SubCmdName string - Version string +var ( + version = mailfull.Version + gittag = "" +) + +func init() { + if gittag != "" { + version = version + "-" + gittag + } } -// noCommitFlag returns true if `pargs` has "-n" flag. -// `pargs` is overwrites with non-flag arguments. -func noCommitFlag(pargs *[]string) (bool, error) { - nFlag := false +func main() { + c := &cli.CLI{ + Name: filepath.Base(os.Args[0]), + Version: version, + Args: os.Args[1:], + } - flagSet := flag.NewFlagSet("", flag.ContinueOnError) - flagSet.SetOutput(&bytes.Buffer{}) - flagSet.BoolVar(&nFlag, "n", nFlag, "") - err := flagSet.Parse(*pargs) - *pargs = flagSet.Args() + meta := Meta{ + UI: &cli.BasicUi{ + Reader: os.Stdin, + Writer: os.Stdout, + ErrorWriter: os.Stderr, + }, + CmdName: c.Name, + Version: c.Version, + } - return nFlag, err + c.Commands = map[string]cli.CommandFactory{ + "init": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &InitCommand{Meta: meta}, nil + }, + "genconfig": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &GenConfigCommand{Meta: meta}, nil + }, + "domains": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &DomainsCommand{Meta: meta}, nil + }, + "domainadd": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &DomainAddCommand{Meta: meta}, nil + }, + "domaindel": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &DomainDelCommand{Meta: meta}, nil + }, + "domaindisable": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &DomainDisableCommand{Meta: meta}, nil + }, + "domainenable": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &DomainEnableCommand{Meta: meta}, nil + }, + "aliasdomains": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasDomainsCommand{Meta: meta}, nil + }, + "aliasdomainadd": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasDomainAddCommand{Meta: meta}, nil + }, + "aliasdomaindel": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasDomainDelCommand{Meta: meta}, nil + }, + "users": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &UsersCommand{Meta: meta}, nil + }, + "useradd": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &UserAddCommand{Meta: meta}, nil + }, + "userdel": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &UserDelCommand{Meta: meta}, nil + }, + "userpasswd": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &UserPasswdCommand{Meta: meta}, nil + }, + "usercheckpw": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &UserCheckPwCommand{Meta: meta}, nil + }, + "aliasusers": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasUsersCommand{Meta: meta}, nil + }, + "aliasuseradd": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasUserAddCommand{Meta: meta}, nil + }, + "aliasusermod": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasUserModCommand{Meta: meta}, nil + }, + "aliasuserdel": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &AliasUserDelCommand{Meta: meta}, nil + }, + "catchall": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &CatchAllCommand{Meta: meta}, nil + }, + "catchallset": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &CatchAllSetCommand{Meta: meta}, nil + }, + "catchallunset": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &CatchAllUnsetCommand{Meta: meta}, nil + }, + "commit": func() (cli.Command, error) { + meta.SubCmdName = c.Subcommand() + return &CommitCommand{Meta: meta}, nil + }, + } + + exitCode, err := c.Run() + if err != nil { + fmt.Fprintf(meta.UI.ErrorWriter, "%v\n", err) + } + + os.Exit(exitCode) } diff --git a/cmd/mailfull/meta.go b/cmd/mailfull/meta.go new file mode 100644 index 0000000..b64a8e9 --- /dev/null +++ b/cmd/mailfull/meta.go @@ -0,0 +1,30 @@ +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 +} From 5a178c350b86b9766c46813ad3e7d90e04dae742 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:35:42 +0900 Subject: [PATCH 06/11] Change structs name --- ...liasdomainadd.go => cmd_aliasdomainadd.go} | 10 ++-- ...liasdomaindel.go => cmd_aliasdomaindel.go} | 10 ++-- .../{aliasdomains.go => cmd_aliasdomains.go} | 10 ++-- .../{aliasuseradd.go => cmd_aliasuseradd.go} | 10 ++-- .../{aliasuserdel.go => cmd_aliasuserdel.go} | 10 ++-- .../{aliasusermod.go => cmd_aliasusermod.go} | 10 ++-- .../{aliasusers.go => cmd_aliasusers.go} | 10 ++-- cmd/mailfull/{catchall.go => cmd_catchall.go} | 10 ++-- .../{catchallset.go => cmd_catchallset.go} | 10 ++-- ...{catchallunset.go => cmd_catchallunset.go} | 10 ++-- cmd/mailfull/{commit.go => cmd_commit.go} | 10 ++-- .../{domainadd.go => cmd_domainadd.go} | 10 ++-- .../{domaindel.go => cmd_domaindel.go} | 10 ++-- ...{domaindisable.go => cmd_domaindisable.go} | 10 ++-- .../{domainenable.go => cmd_domainenable.go} | 10 ++-- cmd/mailfull/{domains.go => cmd_domains.go} | 10 ++-- .../{genconfig.go => cmd_genconfig.go} | 10 ++-- cmd/mailfull/{init.go => cmd_init.go} | 10 ++-- cmd/mailfull/{useradd.go => cmd_useradd.go} | 10 ++-- .../{usercheckpw.go => cmd_usercheckpw.go} | 10 ++-- cmd/mailfull/{userdel.go => cmd_userdel.go} | 10 ++-- .../{userpasswd.go => cmd_userpasswd.go} | 10 ++-- cmd/mailfull/{users.go => cmd_users.go} | 10 ++-- cmd/mailfull/main.go | 46 +++++++++---------- 24 files changed, 138 insertions(+), 138 deletions(-) rename cmd/mailfull/{aliasdomainadd.go => cmd_aliasdomainadd.go} (85%) rename cmd/mailfull/{aliasdomaindel.go => cmd_aliasdomaindel.go} (83%) rename cmd/mailfull/{aliasdomains.go => cmd_aliasdomains.go} (83%) rename cmd/mailfull/{aliasuseradd.go => cmd_aliasuseradd.go} (87%) rename cmd/mailfull/{aliasuserdel.go => cmd_aliasuserdel.go} (85%) rename cmd/mailfull/{aliasusermod.go => cmd_aliasusermod.go} (88%) rename cmd/mailfull/{aliasusers.go => cmd_aliasusers.go} (80%) rename cmd/mailfull/{catchall.go => cmd_catchall.go} (80%) rename cmd/mailfull/{catchallset.go => cmd_catchallset.go} (86%) rename cmd/mailfull/{catchallunset.go => cmd_catchallunset.go} (83%) rename cmd/mailfull/{commit.go => cmd_commit.go} (79%) rename cmd/mailfull/{domainadd.go => cmd_domainadd.go} (88%) rename cmd/mailfull/{domaindel.go => cmd_domaindel.go} (85%) rename cmd/mailfull/{domaindisable.go => cmd_domaindisable.go} (86%) rename cmd/mailfull/{domainenable.go => cmd_domainenable.go} (86%) rename cmd/mailfull/{domains.go => cmd_domains.go} (80%) rename cmd/mailfull/{genconfig.go => cmd_genconfig.go} (82%) rename cmd/mailfull/{init.go => cmd_init.go} (73%) rename cmd/mailfull/{useradd.go => cmd_useradd.go} (88%) rename cmd/mailfull/{usercheckpw.go => cmd_usercheckpw.go} (88%) rename cmd/mailfull/{userdel.go => cmd_userdel.go} (88%) rename cmd/mailfull/{userpasswd.go => cmd_userpasswd.go} (92%) rename cmd/mailfull/{users.go => cmd_users.go} (82%) diff --git a/cmd/mailfull/aliasdomainadd.go b/cmd/mailfull/cmd_aliasdomainadd.go similarity index 85% rename from cmd/mailfull/aliasdomainadd.go rename to cmd/mailfull/cmd_aliasdomainadd.go index 5cec85b..1310c1e 100644 --- a/cmd/mailfull/aliasdomainadd.go +++ b/cmd/mailfull/cmd_aliasdomainadd.go @@ -6,18 +6,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasDomainAddCommand represents a AliasDomainAddCommand. -type AliasDomainAddCommand struct { +// CmdAliasDomainAdd represents a CmdAliasDomainAdd. +type CmdAliasDomainAdd struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasDomainAddCommand) Synopsis() string { +func (c *CmdAliasDomainAdd) Synopsis() string { return "Create a new aliasdomain." } // Help returns long-form help text. -func (c *AliasDomainAddCommand) Help() string { +func (c *CmdAliasDomainAdd) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain target @@ -42,7 +42,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasDomainAddCommand) Run(args []string) int { +func (c *CmdAliasDomainAdd) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/aliasdomaindel.go b/cmd/mailfull/cmd_aliasdomaindel.go similarity index 83% rename from cmd/mailfull/aliasdomaindel.go rename to cmd/mailfull/cmd_aliasdomaindel.go index c38f42f..a20635d 100644 --- a/cmd/mailfull/aliasdomaindel.go +++ b/cmd/mailfull/cmd_aliasdomaindel.go @@ -6,18 +6,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasDomainDelCommand represents a AliasDomainDelCommand. -type AliasDomainDelCommand struct { +// CmdAliasDomainDel represents a CmdAliasDomainDel. +type CmdAliasDomainDel struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasDomainDelCommand) Synopsis() string { +func (c *CmdAliasDomainDel) Synopsis() string { return "Delete a aliasdomain." } // Help returns long-form help text. -func (c *AliasDomainDelCommand) Help() string { +func (c *CmdAliasDomainDel) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasDomainDelCommand) Run(args []string) int { +func (c *CmdAliasDomainDel) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/aliasdomains.go b/cmd/mailfull/cmd_aliasdomains.go similarity index 83% rename from cmd/mailfull/aliasdomains.go rename to cmd/mailfull/cmd_aliasdomains.go index bdc8856..30f41f2 100644 --- a/cmd/mailfull/aliasdomains.go +++ b/cmd/mailfull/cmd_aliasdomains.go @@ -7,18 +7,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasDomainsCommand represents a AliasDomainsCommand. -type AliasDomainsCommand struct { +// CmdAliasDomains represents a CmdAliasDomains. +type CmdAliasDomains struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasDomainsCommand) Synopsis() string { +func (c *CmdAliasDomains) Synopsis() string { return "Show aliasdomains." } // Help returns long-form help text. -func (c *AliasDomainsCommand) Help() string { +func (c *CmdAliasDomains) Help() string { txt := fmt.Sprintf(` Usage: %s %s [domain] @@ -37,7 +37,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasDomainsCommand) Run(args []string) int { +func (c *CmdAliasDomains) Run(args []string) int { if len(args) > 1 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/aliasuseradd.go b/cmd/mailfull/cmd_aliasuseradd.go similarity index 87% rename from cmd/mailfull/aliasuseradd.go rename to cmd/mailfull/cmd_aliasuseradd.go index 4cc004c..aaf83a1 100644 --- a/cmd/mailfull/aliasuseradd.go +++ b/cmd/mailfull/cmd_aliasuseradd.go @@ -7,18 +7,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasUserAddCommand represents a AliasUserAddCommand. -type AliasUserAddCommand struct { +// CmdAliasUserAdd represents a CmdAliasUserAdd. +type CmdAliasUserAdd struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasUserAddCommand) Synopsis() string { +func (c *CmdAliasUserAdd) Synopsis() string { return "Create a new aliasuser." } // Help returns long-form help text. -func (c *AliasUserAddCommand) Help() string { +func (c *CmdAliasUserAdd) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address target [target...] @@ -43,7 +43,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasUserAddCommand) Run(args []string) int { +func (c *CmdAliasUserAdd) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/aliasuserdel.go b/cmd/mailfull/cmd_aliasuserdel.go similarity index 85% rename from cmd/mailfull/aliasuserdel.go rename to cmd/mailfull/cmd_aliasuserdel.go index 8c628cd..45b172b 100644 --- a/cmd/mailfull/aliasuserdel.go +++ b/cmd/mailfull/cmd_aliasuserdel.go @@ -7,18 +7,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasUserDelCommand represents a AliasUserDelCommand. -type AliasUserDelCommand struct { +// CmdAliasUserDel represents a CmdAliasUserDel. +type CmdAliasUserDel struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasUserDelCommand) Synopsis() string { +func (c *CmdAliasUserDel) Synopsis() string { return "Delete a aliasuser." } // Help returns long-form help text. -func (c *AliasUserDelCommand) Help() string { +func (c *CmdAliasUserDel) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address @@ -41,7 +41,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasUserDelCommand) Run(args []string) int { +func (c *CmdAliasUserDel) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/aliasusermod.go b/cmd/mailfull/cmd_aliasusermod.go similarity index 88% rename from cmd/mailfull/aliasusermod.go rename to cmd/mailfull/cmd_aliasusermod.go index 793b063..95e8932 100644 --- a/cmd/mailfull/aliasusermod.go +++ b/cmd/mailfull/cmd_aliasusermod.go @@ -7,18 +7,18 @@ import ( mailfull "github.com/directorz/mailfull-go" ) -// AliasUserModCommand represents a AliasUserModCommand. -type AliasUserModCommand struct { +// CmdAliasUserMod represents a CmdAliasUserMod. +type CmdAliasUserMod struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasUserModCommand) Synopsis() string { +func (c *CmdAliasUserMod) Synopsis() string { return "Modify a aliasuser." } // Help returns long-form help text. -func (c *AliasUserModCommand) Help() string { +func (c *CmdAliasUserMod) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address target [target...] @@ -43,7 +43,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *AliasUserModCommand) Run(args []string) int { +func (c *CmdAliasUserMod) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/aliasusers.go b/cmd/mailfull/cmd_aliasusers.go similarity index 80% rename from cmd/mailfull/aliasusers.go rename to cmd/mailfull/cmd_aliasusers.go index c2db6ff..c43a7f0 100644 --- a/cmd/mailfull/aliasusers.go +++ b/cmd/mailfull/cmd_aliasusers.go @@ -7,18 +7,18 @@ import ( "github.com/directorz/mailfull-go" ) -// AliasUsersCommand represents a AliasUsersCommand. -type AliasUsersCommand struct { +// CmdAliasUsers represents a CmdAliasUsers. +type CmdAliasUsers struct { Meta } // Synopsis returns a one-line synopsis. -func (c *AliasUsersCommand) Synopsis() string { +func (c *CmdAliasUsers) Synopsis() string { return "Show aliasusers." } // Help returns long-form help text. -func (c *AliasUsersCommand) Help() string { +func (c *CmdAliasUsers) Help() string { txt := fmt.Sprintf(` Usage: %s %s domain @@ -37,7 +37,7 @@ Required Args: } // Run runs the command and returns the exit status. -func (c *AliasUsersCommand) Run(args []string) int { +func (c *CmdAliasUsers) Run(args []string) int { if len(args) != 1 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/catchall.go b/cmd/mailfull/cmd_catchall.go similarity index 80% rename from cmd/mailfull/catchall.go rename to cmd/mailfull/cmd_catchall.go index 9bac493..8de4bd5 100644 --- a/cmd/mailfull/catchall.go +++ b/cmd/mailfull/cmd_catchall.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// CatchAllCommand represents a CatchAllCommand. -type CatchAllCommand struct { +// CmdCatchAll represents a CmdCatchAll. +type CmdCatchAll struct { Meta } // Synopsis returns a one-line synopsis. -func (c *CatchAllCommand) Synopsis() string { +func (c *CmdCatchAll) Synopsis() string { return "Show a catchall user." } // Help returns long-form help text. -func (c *CatchAllCommand) Help() string { +func (c *CmdCatchAll) Help() string { txt := fmt.Sprintf(` Usage: %s %s domain @@ -36,7 +36,7 @@ Required Args: } // Run runs the command and returns the exit status. -func (c *CatchAllCommand) Run(args []string) int { +func (c *CmdCatchAll) Run(args []string) int { if len(args) != 1 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/catchallset.go b/cmd/mailfull/cmd_catchallset.go similarity index 86% rename from cmd/mailfull/catchallset.go rename to cmd/mailfull/cmd_catchallset.go index 0d86d23..8191cf5 100644 --- a/cmd/mailfull/catchallset.go +++ b/cmd/mailfull/cmd_catchallset.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// CatchAllSetCommand represents a CatchAllSetCommand. -type CatchAllSetCommand struct { +// CmdCatchAllSet represents a CmdCatchAllSet. +type CmdCatchAllSet struct { Meta } // Synopsis returns a one-line synopsis. -func (c *CatchAllSetCommand) Synopsis() string { +func (c *CmdCatchAllSet) Synopsis() string { return "Set a catchall user." } // Help returns long-form help text. -func (c *CatchAllSetCommand) Help() string { +func (c *CmdCatchAllSet) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain user @@ -42,7 +42,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *CatchAllSetCommand) Run(args []string) int { +func (c *CmdCatchAllSet) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/catchallunset.go b/cmd/mailfull/cmd_catchallunset.go similarity index 83% rename from cmd/mailfull/catchallunset.go rename to cmd/mailfull/cmd_catchallunset.go index 60b7df0..e4f6b5e 100644 --- a/cmd/mailfull/catchallunset.go +++ b/cmd/mailfull/cmd_catchallunset.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// CatchAllUnsetCommand represents a CatchAllUnsetCommand. -type CatchAllUnsetCommand struct { +// CmdCatchAllUnset represents a CmdCatchAllUnset. +type CmdCatchAllUnset struct { Meta } // Synopsis returns a one-line synopsis. -func (c *CatchAllUnsetCommand) Synopsis() string { +func (c *CmdCatchAllUnset) Synopsis() string { return "Unset a catchall user." } // Help returns long-form help text. -func (c *CatchAllUnsetCommand) Help() string { +func (c *CmdCatchAllUnset) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *CatchAllUnsetCommand) Run(args []string) int { +func (c *CmdCatchAllUnset) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/commit.go b/cmd/mailfull/cmd_commit.go similarity index 79% rename from cmd/mailfull/commit.go rename to cmd/mailfull/cmd_commit.go index 829a955..a47384d 100644 --- a/cmd/mailfull/commit.go +++ b/cmd/mailfull/cmd_commit.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// CommitCommand represents a CommitCommand. -type CommitCommand struct { +// CmdCommit represents a CmdCommit. +type CmdCommit struct { Meta } // Synopsis returns a one-line synopsis. -func (c *CommitCommand) Synopsis() string { +func (c *CmdCommit) Synopsis() string { return "Create databases from the structure of the MailData directory." } // Help returns long-form help text. -func (c *CommitCommand) Help() string { +func (c *CmdCommit) Help() string { txt := fmt.Sprintf(` Usage: %s %s @@ -32,7 +32,7 @@ Description: } // Run runs the command and returns the exit status. -func (c *CommitCommand) Run(args []string) int { +func (c *CmdCommit) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) diff --git a/cmd/mailfull/domainadd.go b/cmd/mailfull/cmd_domainadd.go similarity index 88% rename from cmd/mailfull/domainadd.go rename to cmd/mailfull/cmd_domainadd.go index 9744eb4..5c93dbc 100644 --- a/cmd/mailfull/domainadd.go +++ b/cmd/mailfull/cmd_domainadd.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// DomainAddCommand represents a DomainAddCommand. -type DomainAddCommand struct { +// CmdDomainAdd represents a CmdDomainAdd. +type CmdDomainAdd struct { Meta } // Synopsis returns a one-line synopsis. -func (c *DomainAddCommand) Synopsis() string { +func (c *CmdDomainAdd) Synopsis() string { return "Create a new domain and postmaster." } // Help returns long-form help text. -func (c *DomainAddCommand) Help() string { +func (c *CmdDomainAdd) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *DomainAddCommand) Run(args []string) int { +func (c *CmdDomainAdd) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/domaindel.go b/cmd/mailfull/cmd_domaindel.go similarity index 85% rename from cmd/mailfull/domaindel.go rename to cmd/mailfull/cmd_domaindel.go index 0a4c782..a558938 100644 --- a/cmd/mailfull/domaindel.go +++ b/cmd/mailfull/cmd_domaindel.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// DomainDelCommand represents a DomainDelCommand. -type DomainDelCommand struct { +// CmdDomainDel represents a CmdDomainDel. +type CmdDomainDel struct { Meta } // Synopsis returns a one-line synopsis. -func (c *DomainDelCommand) Synopsis() string { +func (c *CmdDomainDel) Synopsis() string { return "Delete and backup a domain." } // Help returns long-form help text. -func (c *DomainDelCommand) Help() string { +func (c *CmdDomainDel) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *DomainDelCommand) Run(args []string) int { +func (c *CmdDomainDel) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/domaindisable.go b/cmd/mailfull/cmd_domaindisable.go similarity index 86% rename from cmd/mailfull/domaindisable.go rename to cmd/mailfull/cmd_domaindisable.go index 83a7d74..f1dd946 100644 --- a/cmd/mailfull/domaindisable.go +++ b/cmd/mailfull/cmd_domaindisable.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// DomainDisableCommand represents a DomainDisableCommand. -type DomainDisableCommand struct { +// CmdDomainDisable represents a CmdDomainDisable. +type CmdDomainDisable struct { Meta } // Synopsis returns a one-line synopsis. -func (c *DomainDisableCommand) Synopsis() string { +func (c *CmdDomainDisable) Synopsis() string { return "Disable a domain temporarily." } // Help returns long-form help text. -func (c *DomainDisableCommand) Help() string { +func (c *CmdDomainDisable) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *DomainDisableCommand) Run(args []string) int { +func (c *CmdDomainDisable) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/domainenable.go b/cmd/mailfull/cmd_domainenable.go similarity index 86% rename from cmd/mailfull/domainenable.go rename to cmd/mailfull/cmd_domainenable.go index 5d4c924..13e05a3 100644 --- a/cmd/mailfull/domainenable.go +++ b/cmd/mailfull/cmd_domainenable.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// DomainEnableCommand represents a DomainEnableCommand. -type DomainEnableCommand struct { +// CmdDomainEnable represents a CmdDomainEnable. +type CmdDomainEnable struct { Meta } // Synopsis returns a one-line synopsis. -func (c *DomainEnableCommand) Synopsis() string { +func (c *CmdDomainEnable) Synopsis() string { return "Enable a domain." } // Help returns long-form help text. -func (c *DomainEnableCommand) Help() string { +func (c *CmdDomainEnable) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] domain @@ -40,7 +40,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *DomainEnableCommand) Run(args []string) int { +func (c *CmdDomainEnable) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/domains.go b/cmd/mailfull/cmd_domains.go similarity index 80% rename from cmd/mailfull/domains.go rename to cmd/mailfull/cmd_domains.go index 0d4ede2..b2fc11f 100644 --- a/cmd/mailfull/domains.go +++ b/cmd/mailfull/cmd_domains.go @@ -7,18 +7,18 @@ import ( "github.com/directorz/mailfull-go" ) -// DomainsCommand represents a DomainsCommand. -type DomainsCommand struct { +// CmdDomains represents a CmdDomains. +type CmdDomains struct { Meta } // Synopsis returns a one-line synopsis. -func (c *DomainsCommand) Synopsis() string { +func (c *CmdDomains) Synopsis() string { return "Show domains." } // Help returns long-form help text. -func (c *DomainsCommand) Help() string { +func (c *CmdDomains) Help() string { txt := fmt.Sprintf(` Usage: %s %s @@ -34,7 +34,7 @@ Description: } // Run runs the command and returns the exit status. -func (c *DomainsCommand) Run(args []string) int { +func (c *CmdDomains) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) diff --git a/cmd/mailfull/genconfig.go b/cmd/mailfull/cmd_genconfig.go similarity index 82% rename from cmd/mailfull/genconfig.go rename to cmd/mailfull/cmd_genconfig.go index dfc8ab4..b533a12 100644 --- a/cmd/mailfull/genconfig.go +++ b/cmd/mailfull/cmd_genconfig.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// GenConfigCommand represents a GenConfigCommand. -type GenConfigCommand struct { +// CmdGenConfig represents a CmdGenConfig. +type CmdGenConfig struct { Meta } // Synopsis returns a one-line synopsis. -func (c *GenConfigCommand) Synopsis() string { +func (c *CmdGenConfig) Synopsis() string { return "Write a Postfix or Dovecot configuration to stdout." } // Help returns long-form help text. -func (c *GenConfigCommand) Help() string { +func (c *CmdGenConfig) Help() string { txt := fmt.Sprintf(` Usage: %s %s name @@ -37,7 +37,7 @@ Required Args: } // Run runs the command and returns the exit status. -func (c *GenConfigCommand) Run(args []string) int { +func (c *CmdGenConfig) Run(args []string) int { if len(args) != 1 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/init.go b/cmd/mailfull/cmd_init.go similarity index 73% rename from cmd/mailfull/init.go rename to cmd/mailfull/cmd_init.go index 12ccd4d..a43a7f5 100644 --- a/cmd/mailfull/init.go +++ b/cmd/mailfull/cmd_init.go @@ -6,18 +6,18 @@ import ( "github.com/directorz/mailfull-go" ) -// InitCommand represents a InitCommand. -type InitCommand struct { +// CmdInit represents a CmdInit. +type CmdInit struct { Meta } // Synopsis returns a one-line synopsis. -func (c *InitCommand) Synopsis() string { +func (c *CmdInit) Synopsis() string { return "Initializes current directory as a Mailfull repository." } // Help returns long-form help text. -func (c *InitCommand) Help() string { +func (c *CmdInit) Help() string { txt := fmt.Sprintf(` Usage: %s %s @@ -32,7 +32,7 @@ Description: } // Run runs the command and returns the exit status. -func (c *InitCommand) Run(args []string) int { +func (c *CmdInit) Run(args []string) int { if err := mailfull.InitRepository("."); err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) return 1 diff --git a/cmd/mailfull/useradd.go b/cmd/mailfull/cmd_useradd.go similarity index 88% rename from cmd/mailfull/useradd.go rename to cmd/mailfull/cmd_useradd.go index f97a04f..e8ca007 100644 --- a/cmd/mailfull/useradd.go +++ b/cmd/mailfull/cmd_useradd.go @@ -7,18 +7,18 @@ import ( "github.com/directorz/mailfull-go" ) -// UserAddCommand represents a UserAddCommand. -type UserAddCommand struct { +// CmdUserAdd represents a CmdUserAdd. +type CmdUserAdd struct { Meta } // Synopsis returns a one-line synopsis. -func (c *UserAddCommand) Synopsis() string { +func (c *CmdUserAdd) Synopsis() string { return "Create a new user." } // Help returns long-form help text. -func (c *UserAddCommand) Help() string { +func (c *CmdUserAdd) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address @@ -41,7 +41,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *UserAddCommand) Run(args []string) int { +func (c *CmdUserAdd) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/usercheckpw.go b/cmd/mailfull/cmd_usercheckpw.go similarity index 88% rename from cmd/mailfull/usercheckpw.go rename to cmd/mailfull/cmd_usercheckpw.go index 7b673c0..bb52261 100644 --- a/cmd/mailfull/usercheckpw.go +++ b/cmd/mailfull/cmd_usercheckpw.go @@ -8,18 +8,18 @@ import ( "github.com/jsimonetti/pwscheme/ssha" ) -// UserCheckPwCommand represents a UserCheckPwCommand. -type UserCheckPwCommand struct { +// CmdUserCheckPw represents a CmdUserCheckPw. +type CmdUserCheckPw struct { Meta } // Synopsis returns a one-line synopsis. -func (c *UserCheckPwCommand) Synopsis() string { +func (c *CmdUserCheckPw) Synopsis() string { return "Check user's password." } // Help returns long-form help text. -func (c *UserCheckPwCommand) Help() string { +func (c *CmdUserCheckPw) Help() string { txt := fmt.Sprintf(` Usage: %s %s address [password] @@ -43,7 +43,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *UserCheckPwCommand) Run(args []string) int { +func (c *CmdUserCheckPw) Run(args []string) int { if len(args) != 1 && len(args) != 2 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/userdel.go b/cmd/mailfull/cmd_userdel.go similarity index 88% rename from cmd/mailfull/userdel.go rename to cmd/mailfull/cmd_userdel.go index 41ae12c..260dbad 100644 --- a/cmd/mailfull/userdel.go +++ b/cmd/mailfull/cmd_userdel.go @@ -7,18 +7,18 @@ import ( "github.com/directorz/mailfull-go" ) -// UserDelCommand represents a UserDelCommand. -type UserDelCommand struct { +// CmdUserDel represents a CmdUserDel. +type CmdUserDel struct { Meta } // Synopsis returns a one-line synopsis. -func (c *UserDelCommand) Synopsis() string { +func (c *CmdUserDel) Synopsis() string { return "Delete and backup a user." } // Help returns long-form help text. -func (c *UserDelCommand) Help() string { +func (c *CmdUserDel) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address @@ -41,7 +41,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *UserDelCommand) Run(args []string) int { +func (c *CmdUserDel) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/userpasswd.go b/cmd/mailfull/cmd_userpasswd.go similarity index 92% rename from cmd/mailfull/userpasswd.go rename to cmd/mailfull/cmd_userpasswd.go index 406cc28..0aa7790 100644 --- a/cmd/mailfull/userpasswd.go +++ b/cmd/mailfull/cmd_userpasswd.go @@ -8,18 +8,18 @@ import ( "github.com/jsimonetti/pwscheme/ssha" ) -// UserPasswdCommand represents a UserPasswdCommand. -type UserPasswdCommand struct { +// CmdUserPasswd represents a CmdUserPasswd. +type CmdUserPasswd struct { Meta } // Synopsis returns a one-line synopsis. -func (c *UserPasswdCommand) Synopsis() string { +func (c *CmdUserPasswd) Synopsis() string { return "Update user's password." } // Help returns long-form help text. -func (c *UserPasswdCommand) Help() string { +func (c *CmdUserPasswd) Help() string { txt := fmt.Sprintf(` Usage: %s %s [-n] address [password] @@ -45,7 +45,7 @@ Optional Args: } // Run runs the command and returns the exit status. -func (c *UserPasswdCommand) Run(args []string) int { +func (c *CmdUserPasswd) Run(args []string) int { noCommit, err := noCommitFlag(&args) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) diff --git a/cmd/mailfull/users.go b/cmd/mailfull/cmd_users.go similarity index 82% rename from cmd/mailfull/users.go rename to cmd/mailfull/cmd_users.go index b9b18c1..e8b20f6 100644 --- a/cmd/mailfull/users.go +++ b/cmd/mailfull/cmd_users.go @@ -7,18 +7,18 @@ import ( "github.com/directorz/mailfull-go" ) -// UsersCommand represents a UsersCommand. -type UsersCommand struct { +// CmdUsers represents a CmdUsers. +type CmdUsers struct { Meta } // Synopsis returns a one-line synopsis. -func (c *UsersCommand) Synopsis() string { +func (c *CmdUsers) Synopsis() string { return "Show users." } // Help returns long-form help text. -func (c *UsersCommand) Help() string { +func (c *CmdUsers) Help() string { txt := fmt.Sprintf(` Usage: %s %s domain @@ -37,7 +37,7 @@ Required Args: } // Run runs the command and returns the exit status. -func (c *UsersCommand) Run(args []string) int { +func (c *CmdUsers) Run(args []string) int { if len(args) != 1 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 diff --git a/cmd/mailfull/main.go b/cmd/mailfull/main.go index c2fb110..a4335ec 100644 --- a/cmd/mailfull/main.go +++ b/cmd/mailfull/main.go @@ -43,95 +43,95 @@ func main() { c.Commands = map[string]cli.CommandFactory{ "init": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &InitCommand{Meta: meta}, nil + return &CmdInit{Meta: meta}, nil }, "genconfig": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &GenConfigCommand{Meta: meta}, nil + return &CmdGenConfig{Meta: meta}, nil }, "domains": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &DomainsCommand{Meta: meta}, nil + return &CmdDomains{Meta: meta}, nil }, "domainadd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &DomainAddCommand{Meta: meta}, nil + return &CmdDomainAdd{Meta: meta}, nil }, "domaindel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &DomainDelCommand{Meta: meta}, nil + return &CmdDomainDel{Meta: meta}, nil }, "domaindisable": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &DomainDisableCommand{Meta: meta}, nil + return &CmdDomainDisable{Meta: meta}, nil }, "domainenable": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &DomainEnableCommand{Meta: meta}, nil + return &CmdDomainEnable{Meta: meta}, nil }, "aliasdomains": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasDomainsCommand{Meta: meta}, nil + return &CmdAliasDomains{Meta: meta}, nil }, "aliasdomainadd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasDomainAddCommand{Meta: meta}, nil + return &CmdAliasDomainAdd{Meta: meta}, nil }, "aliasdomaindel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasDomainDelCommand{Meta: meta}, nil + return &CmdAliasDomainDel{Meta: meta}, nil }, "users": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &UsersCommand{Meta: meta}, nil + return &CmdUsers{Meta: meta}, nil }, "useradd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &UserAddCommand{Meta: meta}, nil + return &CmdUserAdd{Meta: meta}, nil }, "userdel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &UserDelCommand{Meta: meta}, nil + return &CmdUserDel{Meta: meta}, nil }, "userpasswd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &UserPasswdCommand{Meta: meta}, nil + return &CmdUserPasswd{Meta: meta}, nil }, "usercheckpw": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &UserCheckPwCommand{Meta: meta}, nil + return &CmdUserCheckPw{Meta: meta}, nil }, "aliasusers": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasUsersCommand{Meta: meta}, nil + return &CmdAliasUsers{Meta: meta}, nil }, "aliasuseradd": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasUserAddCommand{Meta: meta}, nil + return &CmdAliasUserAdd{Meta: meta}, nil }, "aliasusermod": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasUserModCommand{Meta: meta}, nil + return &CmdAliasUserMod{Meta: meta}, nil }, "aliasuserdel": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &AliasUserDelCommand{Meta: meta}, nil + return &CmdAliasUserDel{Meta: meta}, nil }, "catchall": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &CatchAllCommand{Meta: meta}, nil + return &CmdCatchAll{Meta: meta}, nil }, "catchallset": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &CatchAllSetCommand{Meta: meta}, nil + return &CmdCatchAllSet{Meta: meta}, nil }, "catchallunset": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &CatchAllUnsetCommand{Meta: meta}, nil + return &CmdCatchAllUnset{Meta: meta}, nil }, "commit": func() (cli.Command, error) { meta.SubCmdName = c.Subcommand() - return &CommitCommand{Meta: meta}, nil + return &CmdCommit{Meta: meta}, nil }, } From 2e87209ad2dc1943721e0dff587571912cdde875 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:40:51 +0900 Subject: [PATCH 07/11] 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...) +} From 146ab299d020bffe85641084e383847dc33fcc44 Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 11:57:30 +0900 Subject: [PATCH 08/11] Use Errorf --- cmd/mailfull/cmd_aliasdomainadd.go | 10 +++++----- cmd/mailfull/cmd_aliasdomaindel.go | 8 ++++---- cmd/mailfull/cmd_aliasdomains.go | 4 ++-- cmd/mailfull/cmd_aliasuseradd.go | 10 +++++----- cmd/mailfull/cmd_aliasuserdel.go | 8 ++++---- cmd/mailfull/cmd_aliasusermod.go | 14 +++++++------- cmd/mailfull/cmd_aliasusers.go | 4 ++-- cmd/mailfull/cmd_catchall.go | 4 ++-- cmd/mailfull/cmd_catchallset.go | 10 +++++----- cmd/mailfull/cmd_catchallunset.go | 8 ++++---- cmd/mailfull/cmd_commit.go | 6 +++--- cmd/mailfull/cmd_domainadd.go | 14 +++++++------- cmd/mailfull/cmd_domaindel.go | 8 ++++---- cmd/mailfull/cmd_domaindisable.go | 12 ++++++------ cmd/mailfull/cmd_domainenable.go | 12 ++++++------ cmd/mailfull/cmd_domains.go | 4 ++-- cmd/mailfull/cmd_genconfig.go | 4 ++-- cmd/mailfull/cmd_init.go | 2 +- cmd/mailfull/cmd_useradd.go | 10 +++++----- cmd/mailfull/cmd_usercheckpw.go | 8 ++++---- cmd/mailfull/cmd_userdel.go | 10 +++++----- cmd/mailfull/cmd_userpasswd.go | 20 ++++++++++---------- cmd/mailfull/cmd_users.go | 4 ++-- 23 files changed, 97 insertions(+), 97 deletions(-) diff --git a/cmd/mailfull/cmd_aliasdomainadd.go b/cmd/mailfull/cmd_aliasdomainadd.go index 8f567d6..1e68ad8 100644 --- a/cmd/mailfull/cmd_aliasdomainadd.go +++ b/cmd/mailfull/cmd_aliasdomainadd.go @@ -60,18 +60,18 @@ func (c *CmdAliasDomainAdd) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } aliasDomain, err := mailfull.NewAliasDomain(aliasDomainName, targetDomainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.AliasDomainCreate(aliasDomain); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -81,13 +81,13 @@ func (c *CmdAliasDomainAdd) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasdomaindel.go b/cmd/mailfull/cmd_aliasdomaindel.go index 1cd408b..aab3df5 100644 --- a/cmd/mailfull/cmd_aliasdomaindel.go +++ b/cmd/mailfull/cmd_aliasdomaindel.go @@ -57,12 +57,12 @@ func (c *CmdAliasDomainDel) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.AliasDomainRemove(aliasDomainName); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -72,13 +72,13 @@ func (c *CmdAliasDomainDel) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasdomains.go b/cmd/mailfull/cmd_aliasdomains.go index 8c3cdd7..0a8bf2c 100644 --- a/cmd/mailfull/cmd_aliasdomains.go +++ b/cmd/mailfull/cmd_aliasdomains.go @@ -51,13 +51,13 @@ func (c *CmdAliasDomains) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } aliasDomains, err := repo.AliasDomains() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } sort.Sort(mailfull.AliasDomainSlice(aliasDomains)) diff --git a/cmd/mailfull/cmd_aliasuseradd.go b/cmd/mailfull/cmd_aliasuseradd.go index 1fbde7a..8760eb6 100644 --- a/cmd/mailfull/cmd_aliasuseradd.go +++ b/cmd/mailfull/cmd_aliasuseradd.go @@ -69,18 +69,18 @@ func (c *CmdAliasUserAdd) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } aliasUser, err := mailfull.NewAliasUser(aliasUserName, targets) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.AliasUserCreate(domainName, aliasUser); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -90,13 +90,13 @@ func (c *CmdAliasUserAdd) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasuserdel.go b/cmd/mailfull/cmd_aliasuserdel.go index e16e7d6..6c86072 100644 --- a/cmd/mailfull/cmd_aliasuserdel.go +++ b/cmd/mailfull/cmd_aliasuserdel.go @@ -65,12 +65,12 @@ func (c *CmdAliasUserDel) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.AliasUserRemove(domainName, aliasUserName); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -80,13 +80,13 @@ func (c *CmdAliasUserDel) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasusermod.go b/cmd/mailfull/cmd_aliasusermod.go index adeab62..213b683 100644 --- a/cmd/mailfull/cmd_aliasusermod.go +++ b/cmd/mailfull/cmd_aliasusermod.go @@ -69,27 +69,27 @@ func (c *CmdAliasUserMod) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } aliasUser, err := repo.AliasUser(domainName, aliasUserName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if aliasUser == nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrAliasUserNotExist) + c.Meta.Errorf("%v\n", mailfull.ErrAliasUserNotExist) return 1 } if err := aliasUser.SetTargets(targets); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.AliasUserUpdate(domainName, aliasUser); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -99,13 +99,13 @@ func (c *CmdAliasUserMod) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasusers.go b/cmd/mailfull/cmd_aliasusers.go index e0d60c9..4469f09 100644 --- a/cmd/mailfull/cmd_aliasusers.go +++ b/cmd/mailfull/cmd_aliasusers.go @@ -48,13 +48,13 @@ func (c *CmdAliasUsers) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } aliasUsers, err := repo.AliasUsers(targetDomainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } sort.Sort(mailfull.AliasUserSlice(aliasUsers)) diff --git a/cmd/mailfull/cmd_catchall.go b/cmd/mailfull/cmd_catchall.go index 974fc7b..43615a3 100644 --- a/cmd/mailfull/cmd_catchall.go +++ b/cmd/mailfull/cmd_catchall.go @@ -47,13 +47,13 @@ func (c *CmdCatchAll) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } catchAllUser, err := repo.CatchAllUser(domainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_catchallset.go b/cmd/mailfull/cmd_catchallset.go index f89fc2c..762a1b1 100644 --- a/cmd/mailfull/cmd_catchallset.go +++ b/cmd/mailfull/cmd_catchallset.go @@ -60,18 +60,18 @@ func (c *CmdCatchAllSet) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } catchAllUser, err := mailfull.NewCatchAllUser(userName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.CatchAllUserSet(domainName, catchAllUser); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -81,13 +81,13 @@ func (c *CmdCatchAllSet) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_catchallunset.go b/cmd/mailfull/cmd_catchallunset.go index 7f2d204..8806a06 100644 --- a/cmd/mailfull/cmd_catchallunset.go +++ b/cmd/mailfull/cmd_catchallunset.go @@ -57,12 +57,12 @@ func (c *CmdCatchAllUnset) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.CatchAllUserUnset(domainName); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -72,13 +72,13 @@ func (c *CmdCatchAllUnset) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_commit.go b/cmd/mailfull/cmd_commit.go index 9ed6f20..98276ef 100644 --- a/cmd/mailfull/cmd_commit.go +++ b/cmd/mailfull/cmd_commit.go @@ -36,19 +36,19 @@ Description: func (c *CmdCommit) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domainadd.go b/cmd/mailfull/cmd_domainadd.go index 86dd129..e7680d3 100644 --- a/cmd/mailfull/cmd_domainadd.go +++ b/cmd/mailfull/cmd_domainadd.go @@ -57,29 +57,29 @@ func (c *CmdDomainAdd) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } domain, err := mailfull.NewDomain(domainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.DomainCreate(domain); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } user, err := mailfull.NewUser("postmaster", mailfull.NeverMatchHashedPassword, nil) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.UserCreate(domainName, user); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -89,13 +89,13 @@ func (c *CmdDomainAdd) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domaindel.go b/cmd/mailfull/cmd_domaindel.go index f546ebc..f521a26 100644 --- a/cmd/mailfull/cmd_domaindel.go +++ b/cmd/mailfull/cmd_domaindel.go @@ -57,12 +57,12 @@ func (c *CmdDomainDel) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.DomainRemove(domainName); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -72,13 +72,13 @@ func (c *CmdDomainDel) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domaindisable.go b/cmd/mailfull/cmd_domaindisable.go index c30fb69..3a884b5 100644 --- a/cmd/mailfull/cmd_domaindisable.go +++ b/cmd/mailfull/cmd_domaindisable.go @@ -57,24 +57,24 @@ func (c *CmdDomainDisable) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } domain, err := repo.Domain(domainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if domain == nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrDomainNotExist) + c.Meta.Errorf("%v\n", mailfull.ErrDomainNotExist) return 1 } domain.SetDisabled(true) if err := repo.DomainUpdate(domain); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -84,13 +84,13 @@ func (c *CmdDomainDisable) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domainenable.go b/cmd/mailfull/cmd_domainenable.go index 55ab058..d185906 100644 --- a/cmd/mailfull/cmd_domainenable.go +++ b/cmd/mailfull/cmd_domainenable.go @@ -57,24 +57,24 @@ func (c *CmdDomainEnable) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } domain, err := repo.Domain(domainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if domain == nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrDomainNotExist) + c.Meta.Errorf("%v\n", mailfull.ErrDomainNotExist) return 1 } domain.SetDisabled(false) if err := repo.DomainUpdate(domain); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -84,13 +84,13 @@ func (c *CmdDomainEnable) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domains.go b/cmd/mailfull/cmd_domains.go index 22a761e..bc215f2 100644 --- a/cmd/mailfull/cmd_domains.go +++ b/cmd/mailfull/cmd_domains.go @@ -38,13 +38,13 @@ Description: func (c *CmdDomains) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } domains, err := repo.Domains() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } sort.Sort(mailfull.DomainSlice(domains)) diff --git a/cmd/mailfull/cmd_genconfig.go b/cmd/mailfull/cmd_genconfig.go index 3dedc0e..5cf4dd8 100644 --- a/cmd/mailfull/cmd_genconfig.go +++ b/cmd/mailfull/cmd_genconfig.go @@ -48,7 +48,7 @@ func (c *CmdGenConfig) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -60,7 +60,7 @@ func (c *CmdGenConfig) Run(args []string) int { fmt.Fprintf(c.UI.Writer, "%s", repo.GenerateConfigDovecot()) default: - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] Specify \"postfix\" or \"dovecot\".\n") + c.Meta.Errorf("Specify \"postfix\" or \"dovecot\".\n") return 1 } diff --git a/cmd/mailfull/cmd_init.go b/cmd/mailfull/cmd_init.go index 9640b61..922e30d 100644 --- a/cmd/mailfull/cmd_init.go +++ b/cmd/mailfull/cmd_init.go @@ -35,7 +35,7 @@ Description: // Run runs the command and returns the exit status. func (c *CmdInit) Run(args []string) int { if err := mailfull.InitRepository("."); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_useradd.go b/cmd/mailfull/cmd_useradd.go index ad268b6..b6695ab 100644 --- a/cmd/mailfull/cmd_useradd.go +++ b/cmd/mailfull/cmd_useradd.go @@ -66,18 +66,18 @@ func (c *CmdUserAdd) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } user, err := mailfull.NewUser(userName, mailfull.NeverMatchHashedPassword, nil) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if err := repo.UserCreate(domainName, user); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -87,13 +87,13 @@ func (c *CmdUserAdd) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_usercheckpw.go b/cmd/mailfull/cmd_usercheckpw.go index 5403eea..65542aa 100644 --- a/cmd/mailfull/cmd_usercheckpw.go +++ b/cmd/mailfull/cmd_usercheckpw.go @@ -67,24 +67,24 @@ func (c *CmdUserCheckPw) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } user, err := repo.User(domainName, userName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if user == nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrUserNotExist) + c.Meta.Errorf("%v\n", mailfull.ErrUserNotExist) return 1 } if len(args) != 2 { input, err := c.UI.AskSecret(fmt.Sprintf("Enter password for %s:", address)) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_userdel.go b/cmd/mailfull/cmd_userdel.go index 559fcec..cb35a9d 100644 --- a/cmd/mailfull/cmd_userdel.go +++ b/cmd/mailfull/cmd_userdel.go @@ -66,17 +66,17 @@ func (c *CmdUserDel) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if userName == "postmaster" { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] Cannot delete postmaster.\n") + c.Meta.Errorf("Cannot delete postmaster.\n") return 1 } if err := repo.UserRemove(domainName, userName); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -86,13 +86,13 @@ func (c *CmdUserDel) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_userpasswd.go b/cmd/mailfull/cmd_userpasswd.go index 38c113c..1ea371e 100644 --- a/cmd/mailfull/cmd_userpasswd.go +++ b/cmd/mailfull/cmd_userpasswd.go @@ -75,33 +75,33 @@ func (c *CmdUserPasswd) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } user, err := repo.User(domainName, userName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if user == nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrUserNotExist) + c.Meta.Errorf("%v\n", mailfull.ErrUserNotExist) return 1 } if len(args) != 2 { input1, err := c.UI.AskSecret(fmt.Sprintf("Enter new password for %s:", address)) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } input2, err := c.UI.AskSecret("Retype new password:") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } if input1 != input2 { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] inputs do not match.\n") + c.Meta.Errorf("inputs do not match.\n") return 1 } rawPassword = input1 @@ -111,7 +111,7 @@ func (c *CmdUserPasswd) Run(args []string) int { if rawPassword != "" { str, err := ssha.Generate(rawPassword, 4) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } hashedPassword = str @@ -120,7 +120,7 @@ func (c *CmdUserPasswd) Run(args []string) int { user.SetHashedPassword(hashedPassword) if err := repo.UserUpdate(domainName, user); err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } @@ -130,13 +130,13 @@ func (c *CmdUserPasswd) Run(args []string) int { mailData, err := repo.MailData() if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } err = repo.GenerateDatabases(mailData) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_users.go b/cmd/mailfull/cmd_users.go index cb61bbe..2dc0cda 100644 --- a/cmd/mailfull/cmd_users.go +++ b/cmd/mailfull/cmd_users.go @@ -48,13 +48,13 @@ func (c *CmdUsers) Run(args []string) int { repo, err := mailfull.OpenRepository(".") if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } users, err := repo.Users(targetDomainName) if err != nil { - fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) + c.Meta.Errorf("%v\n", err) return 1 } sort.Sort(mailfull.UserSlice(users)) From c7e56f26aff281e7274f35643f6047a59e4dd68f Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 12:29:23 +0900 Subject: [PATCH 09/11] Remove types for sort.Interface --- aliasdomain.go | 9 +-------- aliasuser.go | 9 +-------- cmd/mailfull/cmd_aliasdomains.go | 2 +- cmd/mailfull/cmd_aliasusers.go | 2 +- cmd/mailfull/cmd_domains.go | 2 +- cmd/mailfull/cmd_users.go | 2 +- database.go | 8 ++++---- domain.go | 7 ------- user.go | 7 ------- 9 files changed, 10 insertions(+), 38 deletions(-) diff --git a/aliasdomain.go b/aliasdomain.go index b1fc2f7..4563f0b 100644 --- a/aliasdomain.go +++ b/aliasdomain.go @@ -15,13 +15,6 @@ type AliasDomain struct { target string } -// AliasDomainSlice attaches the methods of sort.Interface to []*AliasDomain. -type AliasDomainSlice []*AliasDomain - -func (p AliasDomainSlice) Len() int { return len(p) } -func (p AliasDomainSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p AliasDomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewAliasDomain creates a new AliasDomain instance. func NewAliasDomain(name, target string) (*AliasDomain, error) { ad := &AliasDomain{} @@ -190,7 +183,7 @@ func (r *Repository) writeAliasDomainsFile(aliasDomains []*AliasDomain) error { } defer file.Close() - sort.Sort(AliasDomainSlice(aliasDomains)) + sort.Slice(aliasDomains, func(i, j int) bool { return aliasDomains[i].Name() < aliasDomains[j].Name() }) for _, aliasDomain := range aliasDomains { if _, err := fmt.Fprintf(file, "%s:%s\n", aliasDomain.Name(), aliasDomain.Target()); err != nil { diff --git a/aliasuser.go b/aliasuser.go index 647bcfe..cd9d66c 100644 --- a/aliasuser.go +++ b/aliasuser.go @@ -21,13 +21,6 @@ type AliasUser struct { targets []string } -// AliasUserSlice attaches the methods of sort.Interface to []*AliasUser. -type AliasUserSlice []*AliasUser - -func (p AliasUserSlice) Len() int { return len(p) } -func (p AliasUserSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p AliasUserSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewAliasUser creates a new AliasUser instance. func NewAliasUser(name string, targets []string) (*AliasUser, error) { au := &AliasUser{} @@ -233,7 +226,7 @@ func (r *Repository) writeAliasUsersFile(domainName string, aliasUsers []*AliasU } defer file.Close() - sort.Sort(AliasUserSlice(aliasUsers)) + sort.Slice(aliasUsers, func(i, j int) bool { return aliasUsers[i].Name() < aliasUsers[j].Name() }) for _, aliasUser := range aliasUsers { if _, err := fmt.Fprintf(file, "%s:%s\n", aliasUser.Name(), strings.Join(aliasUser.Targets(), ",")); err != nil { diff --git a/cmd/mailfull/cmd_aliasdomains.go b/cmd/mailfull/cmd_aliasdomains.go index 0a8bf2c..43a07fe 100644 --- a/cmd/mailfull/cmd_aliasdomains.go +++ b/cmd/mailfull/cmd_aliasdomains.go @@ -60,7 +60,7 @@ func (c *CmdAliasDomains) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.AliasDomainSlice(aliasDomains)) + sort.Slice(aliasDomains, func(i, j int) bool { return aliasDomains[i].Name() < aliasDomains[j].Name() }) for _, aliasDomain := range aliasDomains { if targetDomainName != "" { diff --git a/cmd/mailfull/cmd_aliasusers.go b/cmd/mailfull/cmd_aliasusers.go index 4469f09..c153994 100644 --- a/cmd/mailfull/cmd_aliasusers.go +++ b/cmd/mailfull/cmd_aliasusers.go @@ -57,7 +57,7 @@ func (c *CmdAliasUsers) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.AliasUserSlice(aliasUsers)) + sort.Slice(aliasUsers, func(i, j int) bool { return aliasUsers[i].Name() < aliasUsers[j].Name() }) for _, aliasUser := range aliasUsers { fmt.Fprintf(c.UI.Writer, "%s\n", aliasUser.Name()) diff --git a/cmd/mailfull/cmd_domains.go b/cmd/mailfull/cmd_domains.go index bc215f2..9c3ba38 100644 --- a/cmd/mailfull/cmd_domains.go +++ b/cmd/mailfull/cmd_domains.go @@ -47,7 +47,7 @@ func (c *CmdDomains) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.DomainSlice(domains)) + sort.Slice(domains, func(i, j int) bool { return domains[i].Name() < domains[j].Name() }) for _, domain := range domains { disableStr := "" diff --git a/cmd/mailfull/cmd_users.go b/cmd/mailfull/cmd_users.go index 2dc0cda..66d5741 100644 --- a/cmd/mailfull/cmd_users.go +++ b/cmd/mailfull/cmd_users.go @@ -57,7 +57,7 @@ func (c *CmdUsers) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.UserSlice(users)) + sort.Slice(users, func(i, j int) bool { return users[i].Name() < users[j].Name() }) for _, user := range users { fmt.Fprintf(c.UI.Writer, "%s\n", user.Name()) diff --git a/database.go b/database.go index e12cf5c..4383e82 100644 --- a/database.go +++ b/database.go @@ -11,12 +11,12 @@ import ( // GenerateDatabases generates databases from the MailData directory. func (r *Repository) GenerateDatabases(md *MailData) error { - sort.Sort(DomainSlice(md.Domains)) - sort.Sort(AliasDomainSlice(md.AliasDomains)) + sort.Slice(md.Domains, func(i, j int) bool { return md.Domains[i].Name() < md.Domains[j].Name() }) + sort.Slice(md.AliasDomains, func(i, j int) bool { return md.AliasDomains[i].Name() < md.AliasDomains[j].Name() }) for _, domain := range md.Domains { - sort.Sort(UserSlice(domain.Users)) - sort.Sort(AliasUserSlice(domain.AliasUsers)) + sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() }) + sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() }) } // Generate files diff --git a/domain.go b/domain.go index c0089d7..f5e5044 100644 --- a/domain.go +++ b/domain.go @@ -17,13 +17,6 @@ type Domain struct { CatchAllUser *CatchAllUser } -// DomainSlice attaches the methods of sort.Interface to []*Domain. -type DomainSlice []*Domain - -func (p DomainSlice) Len() int { return len(p) } -func (p DomainSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p DomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewDomain creates a new Domain instance. func NewDomain(name string) (*Domain, error) { d := &Domain{} diff --git a/user.go b/user.go index cdf3bec..c502cb8 100644 --- a/user.go +++ b/user.go @@ -19,13 +19,6 @@ type User struct { forwards []string } -// UserSlice attaches the methods of sort.Interface to []*User. -type UserSlice []*User - -func (p UserSlice) Len() int { return len(p) } -func (p UserSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p UserSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewUser creates a new User instance. func NewUser(name, hashedPassword string, forwards []string) (*User, error) { u := &User{} From 9c92ac965605a370902ff9c672f6f25e2920e03e Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 12:48:54 +0900 Subject: [PATCH 10/11] Remove type MailData --- cmd/mailfull/cmd_aliasdomainadd.go | 10 +-- cmd/mailfull/cmd_aliasdomaindel.go | 10 +-- cmd/mailfull/cmd_aliasuseradd.go | 10 +-- cmd/mailfull/cmd_aliasuserdel.go | 10 +-- cmd/mailfull/cmd_aliasusermod.go | 10 +-- cmd/mailfull/cmd_catchallset.go | 10 +-- cmd/mailfull/cmd_catchallunset.go | 10 +-- cmd/mailfull/cmd_commit.go | 9 +-- cmd/mailfull/cmd_domainadd.go | 10 +-- cmd/mailfull/cmd_domaindel.go | 10 +-- cmd/mailfull/cmd_domaindisable.go | 10 +-- cmd/mailfull/cmd_domainenable.go | 10 +-- cmd/mailfull/cmd_useradd.go | 10 +-- cmd/mailfull/cmd_userdel.go | 10 +-- cmd/mailfull/cmd_userpasswd.go | 10 +-- database.go | 103 +++++++++++++++++++++-------- maildata.go | 47 ------------- 17 files changed, 92 insertions(+), 207 deletions(-) delete mode 100644 maildata.go diff --git a/cmd/mailfull/cmd_aliasdomainadd.go b/cmd/mailfull/cmd_aliasdomainadd.go index 1e68ad8..d7b51e1 100644 --- a/cmd/mailfull/cmd_aliasdomainadd.go +++ b/cmd/mailfull/cmd_aliasdomainadd.go @@ -78,15 +78,7 @@ func (c *CmdAliasDomainAdd) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasdomaindel.go b/cmd/mailfull/cmd_aliasdomaindel.go index aab3df5..370dcfc 100644 --- a/cmd/mailfull/cmd_aliasdomaindel.go +++ b/cmd/mailfull/cmd_aliasdomaindel.go @@ -69,15 +69,7 @@ func (c *CmdAliasDomainDel) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasuseradd.go b/cmd/mailfull/cmd_aliasuseradd.go index 8760eb6..edef4c6 100644 --- a/cmd/mailfull/cmd_aliasuseradd.go +++ b/cmd/mailfull/cmd_aliasuseradd.go @@ -87,15 +87,7 @@ func (c *CmdAliasUserAdd) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasuserdel.go b/cmd/mailfull/cmd_aliasuserdel.go index 6c86072..56dc398 100644 --- a/cmd/mailfull/cmd_aliasuserdel.go +++ b/cmd/mailfull/cmd_aliasuserdel.go @@ -77,15 +77,7 @@ func (c *CmdAliasUserDel) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_aliasusermod.go b/cmd/mailfull/cmd_aliasusermod.go index 213b683..5081138 100644 --- a/cmd/mailfull/cmd_aliasusermod.go +++ b/cmd/mailfull/cmd_aliasusermod.go @@ -96,15 +96,7 @@ func (c *CmdAliasUserMod) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_catchallset.go b/cmd/mailfull/cmd_catchallset.go index 762a1b1..632e0f1 100644 --- a/cmd/mailfull/cmd_catchallset.go +++ b/cmd/mailfull/cmd_catchallset.go @@ -78,15 +78,7 @@ func (c *CmdCatchAllSet) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_catchallunset.go b/cmd/mailfull/cmd_catchallunset.go index 8806a06..81859f8 100644 --- a/cmd/mailfull/cmd_catchallunset.go +++ b/cmd/mailfull/cmd_catchallunset.go @@ -69,15 +69,7 @@ func (c *CmdCatchAllUnset) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_commit.go b/cmd/mailfull/cmd_commit.go index 98276ef..ade21f1 100644 --- a/cmd/mailfull/cmd_commit.go +++ b/cmd/mailfull/cmd_commit.go @@ -40,14 +40,7 @@ func (c *CmdCommit) Run(args []string) int { return 1 } - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domainadd.go b/cmd/mailfull/cmd_domainadd.go index e7680d3..72a47b1 100644 --- a/cmd/mailfull/cmd_domainadd.go +++ b/cmd/mailfull/cmd_domainadd.go @@ -86,15 +86,7 @@ func (c *CmdDomainAdd) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domaindel.go b/cmd/mailfull/cmd_domaindel.go index f521a26..5845ff9 100644 --- a/cmd/mailfull/cmd_domaindel.go +++ b/cmd/mailfull/cmd_domaindel.go @@ -69,15 +69,7 @@ func (c *CmdDomainDel) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domaindisable.go b/cmd/mailfull/cmd_domaindisable.go index 3a884b5..ff44139 100644 --- a/cmd/mailfull/cmd_domaindisable.go +++ b/cmd/mailfull/cmd_domaindisable.go @@ -81,15 +81,7 @@ func (c *CmdDomainDisable) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_domainenable.go b/cmd/mailfull/cmd_domainenable.go index d185906..42f1542 100644 --- a/cmd/mailfull/cmd_domainenable.go +++ b/cmd/mailfull/cmd_domainenable.go @@ -81,15 +81,7 @@ func (c *CmdDomainEnable) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_useradd.go b/cmd/mailfull/cmd_useradd.go index b6695ab..5259db4 100644 --- a/cmd/mailfull/cmd_useradd.go +++ b/cmd/mailfull/cmd_useradd.go @@ -84,15 +84,7 @@ func (c *CmdUserAdd) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_userdel.go b/cmd/mailfull/cmd_userdel.go index cb35a9d..448f7fd 100644 --- a/cmd/mailfull/cmd_userdel.go +++ b/cmd/mailfull/cmd_userdel.go @@ -83,15 +83,7 @@ func (c *CmdUserDel) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/cmd/mailfull/cmd_userpasswd.go b/cmd/mailfull/cmd_userpasswd.go index 1ea371e..07ea488 100644 --- a/cmd/mailfull/cmd_userpasswd.go +++ b/cmd/mailfull/cmd_userpasswd.go @@ -127,15 +127,7 @@ func (c *CmdUserPasswd) Run(args []string) int { if noCommit { return 0 } - - mailData, err := repo.MailData() - if err != nil { - c.Meta.Errorf("%v\n", err) - return 1 - } - - err = repo.GenerateDatabases(mailData) - if err != nil { + if err = repo.GenerateDatabases(); err != nil { c.Meta.Errorf("%v\n", err) return 1 } diff --git a/database.go b/database.go index 4383e82..3dd0d30 100644 --- a/database.go +++ b/database.go @@ -9,33 +9,84 @@ import ( "strings" ) -// GenerateDatabases generates databases from the MailData directory. -func (r *Repository) GenerateDatabases(md *MailData) error { - sort.Slice(md.Domains, func(i, j int) bool { return md.Domains[i].Name() < md.Domains[j].Name() }) - sort.Slice(md.AliasDomains, func(i, j int) bool { return md.AliasDomains[i].Name() < md.AliasDomains[j].Name() }) +// repoData represents a repoData. +type repoData struct { + Domains []*Domain + AliasDomains []*AliasDomain +} - for _, domain := range md.Domains { +// repoData returns a repoData. +func (r *Repository) repoData() (*repoData, error) { + domains, err := r.Domains() + if err != nil { + return nil, err + } + + aliasDomains, err := r.AliasDomains() + if err != nil { + return nil, err + } + + for _, domain := range domains { + users, err := r.Users(domain.Name()) + if err != nil { + return nil, err + } + domain.Users = users + + aliasUsers, err := r.AliasUsers(domain.Name()) + if err != nil { + return nil, err + } + domain.AliasUsers = aliasUsers + + catchAllUser, err := r.CatchAllUser(domain.Name()) + if err != nil { + return nil, err + } + domain.CatchAllUser = catchAllUser + } + + rd := &repoData{ + Domains: domains, + AliasDomains: aliasDomains, + } + + return rd, nil +} + +// GenerateDatabases generates databases from the Repository. +func (r *Repository) GenerateDatabases() error { + rd, err := r.repoData() + if err != nil { + return err + } + + sort.Slice(rd.Domains, func(i, j int) bool { return rd.Domains[i].Name() < rd.Domains[j].Name() }) + sort.Slice(rd.AliasDomains, func(i, j int) bool { return rd.AliasDomains[i].Name() < rd.AliasDomains[j].Name() }) + + for _, domain := range rd.Domains { sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() }) sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() }) } // Generate files - if err := r.generateDbDomains(md); err != nil { + if err := r.generateDbDomains(rd); err != nil { return err } - if err := r.generateDbDestinations(md); err != nil { + if err := r.generateDbDestinations(rd); err != nil { return err } - if err := r.generateDbMaildirs(md); err != nil { + if err := r.generateDbMaildirs(rd); err != nil { return err } - if err := r.generateDbLocaltable(md); err != nil { + if err := r.generateDbLocaltable(rd); err != nil { return err } - if err := r.generateDbForwards(md); err != nil { + if err := r.generateDbForwards(rd); err != nil { return err } - if err := r.generateDbPasswords(md); err != nil { + if err := r.generateDbPasswords(rd); err != nil { return err } @@ -59,7 +110,7 @@ func (r *Repository) GenerateDatabases(md *MailData) error { return nil } -func (r *Repository) generateDbDomains(md *MailData) error { +func (r *Repository) generateDbDomains(rd *repoData) error { dbDomains, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDomains)) if err != nil { return err @@ -69,7 +120,7 @@ func (r *Repository) generateDbDomains(md *MailData) error { } defer dbDomains.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } @@ -79,7 +130,7 @@ func (r *Repository) generateDbDomains(md *MailData) error { } } - for _, aliasDomain := range md.AliasDomains { + for _, aliasDomain := range rd.AliasDomains { if _, err := fmt.Fprintf(dbDomains, "%s virtual\n", aliasDomain.Name()); err != nil { return err } @@ -88,7 +139,7 @@ func (r *Repository) generateDbDomains(md *MailData) error { return nil } -func (r *Repository) generateDbDestinations(md *MailData) error { +func (r *Repository) generateDbDestinations(rd *repoData) error { dbDestinations, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDestinations)) if err != nil { return err @@ -98,7 +149,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error { } defer dbDestinations.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } @@ -123,7 +174,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error { } } - for _, aliasDomain := range md.AliasDomains { + for _, aliasDomain := range rd.AliasDomains { if aliasDomain.Target() == domain.Name() { if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", userName, aliasDomain.Name(), user.Name(), domain.Name()); err != nil { return err @@ -137,7 +188,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error { return err } - for _, aliasDomain := range md.AliasDomains { + for _, aliasDomain := range rd.AliasDomains { if aliasDomain.Target() == domain.Name() { if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", aliasUser.Name(), aliasDomain.Name(), aliasUser.Name(), domain.Name()); err != nil { return err @@ -150,7 +201,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error { return nil } -func (r *Repository) generateDbMaildirs(md *MailData) error { +func (r *Repository) generateDbMaildirs(rd *repoData) error { dbMaildirs, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbMaildirs)) if err != nil { return err @@ -160,7 +211,7 @@ func (r *Repository) generateDbMaildirs(md *MailData) error { } defer dbMaildirs.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } @@ -175,7 +226,7 @@ func (r *Repository) generateDbMaildirs(md *MailData) error { return nil } -func (r *Repository) generateDbLocaltable(md *MailData) error { +func (r *Repository) generateDbLocaltable(rd *repoData) error { dbLocaltable, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbLocaltable)) if err != nil { return err @@ -185,7 +236,7 @@ func (r *Repository) generateDbLocaltable(md *MailData) error { } defer dbLocaltable.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } @@ -203,7 +254,7 @@ func (r *Repository) generateDbLocaltable(md *MailData) error { return nil } -func (r *Repository) generateDbForwards(md *MailData) error { +func (r *Repository) generateDbForwards(rd *repoData) error { dbForwards, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbForwards)) if err != nil { return err @@ -213,7 +264,7 @@ func (r *Repository) generateDbForwards(md *MailData) error { } defer dbForwards.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } @@ -243,7 +294,7 @@ func (r *Repository) generateDbForwards(md *MailData) error { return nil } -func (r *Repository) generateDbPasswords(md *MailData) error { +func (r *Repository) generateDbPasswords(rd *repoData) error { dbPasswords, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbPasswords)) if err != nil { return err @@ -253,7 +304,7 @@ func (r *Repository) generateDbPasswords(md *MailData) error { } defer dbPasswords.Close() - for _, domain := range md.Domains { + for _, domain := range rd.Domains { if domain.Disabled() { continue } diff --git a/maildata.go b/maildata.go deleted file mode 100644 index 7e32b38..0000000 --- a/maildata.go +++ /dev/null @@ -1,47 +0,0 @@ -package mailfull - -// MailData represents a MailData. -type MailData struct { - Domains []*Domain - AliasDomains []*AliasDomain -} - -// MailData returns a MailData. -func (r *Repository) MailData() (*MailData, error) { - domains, err := r.Domains() - if err != nil { - return nil, err - } - - aliasDomains, err := r.AliasDomains() - if err != nil { - return nil, err - } - - for _, domain := range domains { - users, err := r.Users(domain.Name()) - if err != nil { - return nil, err - } - domain.Users = users - - aliasUsers, err := r.AliasUsers(domain.Name()) - if err != nil { - return nil, err - } - domain.AliasUsers = aliasUsers - - catchAllUser, err := r.CatchAllUser(domain.Name()) - if err != nil { - return nil, err - } - domain.CatchAllUser = catchAllUser - } - - mailData := &MailData{ - Domains: domains, - AliasDomains: aliasDomains, - } - - return mailData, nil -} From a97a9e343ba1ab8284f12a3d2eaeb60c1ed201de Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 13:04:25 +0900 Subject: [PATCH 11/11] Bump version to v1.0.0 --- version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.go b/version.go index e92ef57..383d0a1 100644 --- a/version.go +++ b/version.go @@ -1,4 +1,4 @@ package mailfull // Version is a version number. -const Version = "v0.0.7" +const Version = "v1.0.0"