mirror of
https://github.com/directorz/mailfull-go.git
synced 2025-12-17 17:47:04 +00:00
Merge pull request #27 from directorz/feature/remove_types_for_sort
Remove types for sort.Interface #26
This commit is contained in:
@@ -15,13 +15,6 @@ type AliasDomain struct {
|
|||||||
target string
|
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.
|
// NewAliasDomain creates a new AliasDomain instance.
|
||||||
func NewAliasDomain(name, target string) (*AliasDomain, error) {
|
func NewAliasDomain(name, target string) (*AliasDomain, error) {
|
||||||
ad := &AliasDomain{}
|
ad := &AliasDomain{}
|
||||||
@@ -190,7 +183,7 @@ func (r *Repository) writeAliasDomainsFile(aliasDomains []*AliasDomain) error {
|
|||||||
}
|
}
|
||||||
defer file.Close()
|
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 {
|
for _, aliasDomain := range aliasDomains {
|
||||||
if _, err := fmt.Fprintf(file, "%s:%s\n", aliasDomain.Name(), aliasDomain.Target()); err != nil {
|
if _, err := fmt.Fprintf(file, "%s:%s\n", aliasDomain.Name(), aliasDomain.Target()); err != nil {
|
||||||
|
|||||||
@@ -21,13 +21,6 @@ type AliasUser struct {
|
|||||||
targets []string
|
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.
|
// NewAliasUser creates a new AliasUser instance.
|
||||||
func NewAliasUser(name string, targets []string) (*AliasUser, error) {
|
func NewAliasUser(name string, targets []string) (*AliasUser, error) {
|
||||||
au := &AliasUser{}
|
au := &AliasUser{}
|
||||||
@@ -233,7 +226,7 @@ func (r *Repository) writeAliasUsersFile(domainName string, aliasUsers []*AliasU
|
|||||||
}
|
}
|
||||||
defer file.Close()
|
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 {
|
for _, aliasUser := range aliasUsers {
|
||||||
if _, err := fmt.Fprintf(file, "%s:%s\n", aliasUser.Name(), strings.Join(aliasUser.Targets(), ",")); err != nil {
|
if _, err := fmt.Fprintf(file, "%s:%s\n", aliasUser.Name(), strings.Join(aliasUser.Targets(), ",")); err != nil {
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func (c *CmdAliasDomains) Run(args []string) int {
|
|||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
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 {
|
for _, aliasDomain := range aliasDomains {
|
||||||
if targetDomainName != "" {
|
if targetDomainName != "" {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ func (c *CmdAliasUsers) Run(args []string) int {
|
|||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
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 {
|
for _, aliasUser := range aliasUsers {
|
||||||
fmt.Fprintf(c.UI.Writer, "%s\n", aliasUser.Name())
|
fmt.Fprintf(c.UI.Writer, "%s\n", aliasUser.Name())
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ func (c *CmdDomains) Run(args []string) int {
|
|||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
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 {
|
for _, domain := range domains {
|
||||||
disableStr := ""
|
disableStr := ""
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ func (c *CmdUsers) Run(args []string) int {
|
|||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
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 {
|
for _, user := range users {
|
||||||
fmt.Fprintf(c.UI.Writer, "%s\n", user.Name())
|
fmt.Fprintf(c.UI.Writer, "%s\n", user.Name())
|
||||||
|
|||||||
@@ -11,12 +11,12 @@ import (
|
|||||||
|
|
||||||
// GenerateDatabases generates databases from the MailData directory.
|
// GenerateDatabases generates databases from the MailData directory.
|
||||||
func (r *Repository) GenerateDatabases(md *MailData) error {
|
func (r *Repository) GenerateDatabases(md *MailData) error {
|
||||||
sort.Sort(DomainSlice(md.Domains))
|
sort.Slice(md.Domains, func(i, j int) bool { return md.Domains[i].Name() < md.Domains[j].Name() })
|
||||||
sort.Sort(AliasDomainSlice(md.AliasDomains))
|
sort.Slice(md.AliasDomains, func(i, j int) bool { return md.AliasDomains[i].Name() < md.AliasDomains[j].Name() })
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range md.Domains {
|
||||||
sort.Sort(UserSlice(domain.Users))
|
sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() })
|
||||||
sort.Sort(AliasUserSlice(domain.AliasUsers))
|
sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate files
|
// Generate files
|
||||||
|
|||||||
@@ -17,13 +17,6 @@ type Domain struct {
|
|||||||
CatchAllUser *CatchAllUser
|
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.
|
// NewDomain creates a new Domain instance.
|
||||||
func NewDomain(name string) (*Domain, error) {
|
func NewDomain(name string) (*Domain, error) {
|
||||||
d := &Domain{}
|
d := &Domain{}
|
||||||
|
|||||||
7
user.go
7
user.go
@@ -19,13 +19,6 @@ type User struct {
|
|||||||
forwards []string
|
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.
|
// NewUser creates a new User instance.
|
||||||
func NewUser(name, hashedPassword string, forwards []string) (*User, error) {
|
func NewUser(name, hashedPassword string, forwards []string) (*User, error) {
|
||||||
u := &User{}
|
u := &User{}
|
||||||
|
|||||||
Reference in New Issue
Block a user