mirror of
https://github.com/directorz/mailfull-go.git
synced 2025-12-17 09:37:02 +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
|
||||
}
|
||||
|
||||
// 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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 != "" {
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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 := ""
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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{}
|
||||
|
||||
7
user.go
7
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{}
|
||||
|
||||
Reference in New Issue
Block a user