Changeset 202 in code for trunk/service.go


Ignore:
Timestamp:
Apr 1, 2020, 1:40:20 PM (5 years ago)
Author:
contact
Message:

Add "network delete" service command

And add all the infrastructure required to stop and delete networks.

References: https://todo.sr.ht/~emersion/soju/17

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/service.go

    r151 r202  
    9898                                        handle: handleServiceNetworkStatus,
    9999                                },
     100                                "delete": {
     101                                        usage:  "<name>",
     102                                        desc:   "delete a network",
     103                                        handle: handleServiceNetworkDelete,
     104                                },
    100105                        },
    101106                },
     
    144149}
    145150
    146 func handleServiceCreateNetwork(dc *downstreamConn, params []string) error {
     151func newFlagSet() *flag.FlagSet {
    147152        fs := flag.NewFlagSet("", flag.ContinueOnError)
    148153        fs.SetOutput(ioutil.Discard)
     154        return fs
     155}
     156
     157func handleServiceCreateNetwork(dc *downstreamConn, params []string) error {
     158        fs := newFlagSet()
    149159        addr := fs.String("addr", "", "")
    150160        name := fs.String("name", "", "")
     
    178188        }
    179189
    180         sendServicePRIVMSG(dc, fmt.Sprintf("created network %s successfully", network.GetName()))
     190        sendServicePRIVMSG(dc, fmt.Sprintf("created network %q", network.GetName()))
    181191        return nil
    182192}
     
    205215        return nil
    206216}
     217
     218func handleServiceNetworkDelete(dc *downstreamConn, params []string) error {
     219        if len(params) != 1 {
     220                return fmt.Errorf("expected exactly one argument")
     221        }
     222
     223        net := dc.user.getNetwork(params[0])
     224        if net == nil {
     225                return fmt.Errorf("unknown network %q", params[0])
     226        }
     227
     228        if err := dc.user.deleteNetwork(net.ID); err != nil {
     229                return err
     230        }
     231
     232        sendServicePRIVMSG(dc, fmt.Sprintf("deleted network %q", net.GetName()))
     233        return nil
     234}
Note: See TracChangeset for help on using the changeset viewer.