Changeset 542 in code for trunk/service.go


Ignore:
Timestamp:
May 26, 2021, 8:51:02 AM (4 years ago)
Author:
contact
Message:

Allow networks to be disabled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/service.go

    r539 r542  
    1919        "math/big"
    2020        "sort"
     21        "strconv"
    2122        "strings"
    2223        "time"
     
    150151                        children: serviceCommandSet{
    151152                                "create": {
    152                                         usage:  "-addr <addr> [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick] [-connect-command command]...",
     153                                        usage:  "-addr <addr> [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick] [-enabled enabled] [-connect-command command]...",
    153154                                        desc:   "add a new network",
    154155                                        handle: handleServiceNetworkCreate,
     
    159160                                },
    160161                                "update": {
    161                                         usage:  "<name> [-addr addr] [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick] [-connect-command command]...",
     162                                        usage:  "<name> [-addr addr] [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick] [-enabled enabled] [-connect-command command]...",
    162163                                        desc:   "update a network",
    163164                                        handle: handleServiceNetworkUpdate,
     
    318319}
    319320
     321type boolPtrFlag struct {
     322        ptr **bool
     323}
     324
     325func (f boolPtrFlag) String() string {
     326        if f.ptr == nil || *f.ptr == nil {
     327                return "<nil>"
     328        }
     329        return strconv.FormatBool(**f.ptr)
     330}
     331
     332func (f boolPtrFlag) Set(s string) error {
     333        v, err := strconv.ParseBool(s)
     334        if err != nil {
     335                return err
     336        }
     337        *f.ptr = &v
     338        return nil
     339}
     340
    320341type networkFlagSet struct {
    321342        *flag.FlagSet
    322343        Addr, Name, Nick, Username, Pass, Realname *string
     344        Enabled                                    *bool
    323345        ConnectCommands                            []string
    324346}
     
    332354        fs.Var(stringPtrFlag{&fs.Pass}, "pass", "")
    333355        fs.Var(stringPtrFlag{&fs.Realname}, "realname", "")
     356        fs.Var(boolPtrFlag{&fs.Enabled}, "enabled", "")
    334357        fs.Var((*stringSliceFlag)(&fs.ConnectCommands), "connect-command", "")
    335358        return fs
     
    362385        if fs.Realname != nil {
    363386                network.Realname = *fs.Realname
     387        }
     388        if fs.Enabled != nil {
     389                network.Enabled = *fs.Enabled
    364390        }
    365391        if fs.ConnectCommands != nil {
     
    389415
    390416        record := &Network{
    391                 Addr: *fs.Addr,
    392                 Nick: dc.nick,
     417                Addr:    *fs.Addr,
     418                Nick:    dc.nick,
     419                Enabled: true,
    393420        }
    394421        if err := fs.update(record); err != nil {
     
    416443                        }
    417444                        details = fmt.Sprintf("%v channels", uc.channels.Len())
     445                } else if !net.Enabled {
     446                        statuses = append(statuses, "disabled")
    418447                } else {
    419448                        statuses = append(statuses, "disconnected")
Note: See TracChangeset for help on using the changeset viewer.