Changeset 120 in code for trunk/service.go


Ignore:
Timestamp:
Mar 19, 2020, 12:14:44 AM (5 years ago)
Author:
delthas
Message:

Add create-network bouncer service command

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/service.go

    r117 r120  
    22
    33import (
     4        "flag"
    45        "fmt"
     6        "io/ioutil"
    57        "strings"
    68
     
    5961                        handle: handleServiceHelp,
    6062                },
     63                "create-network": {
     64                        usage:  "-addr <addr> [-name name] [-username username] [-pass pass] [-realname realname] [-nick nick]",
     65                        desc:   "add a new network",
     66                        handle: handleServiceCreateNetwork,
     67                },
    6168        }
    6269}
     
    8693        return nil
    8794}
     95
     96func handleServiceCreateNetwork(dc *downstreamConn, params []string) error {
     97        fs := flag.NewFlagSet("", flag.ContinueOnError)
     98        fs.SetOutput(ioutil.Discard)
     99        addr := fs.String("addr", "", "")
     100        name := fs.String("name", "", "")
     101        username := fs.String("username", "", "")
     102        pass := fs.String("pass", "", "")
     103        realname := fs.String("realname", "", "")
     104        nick := fs.String("nick", "", "")
     105
     106        if err := fs.Parse(params); err != nil {
     107                return err
     108        }
     109        if *addr == "" {
     110                return fmt.Errorf("flag addr is required")
     111        }
     112
     113        if *nick == "" {
     114                *nick = dc.nick
     115        }
     116
     117        var err error
     118        network, err := dc.user.createNetwork(&Network{
     119                Addr:     *addr,
     120                Name:     *name,
     121                Username: *username,
     122                Pass:     *pass,
     123                Realname: *realname,
     124                Nick:     *nick,
     125        })
     126        if err != nil {
     127                return fmt.Errorf("could not create network: %v", err)
     128        }
     129
     130        sendServicePRIVMSG(dc, fmt.Sprintf("created network %s successfully", network.GetName()))
     131        return nil
     132}
Note: See TracChangeset for help on using the changeset viewer.