github.com/keybase/client/go@v0.0.0-20240520164431-4f512a4c85a3/client/cmd_fake_following_changed.go (about) 1 // Copyright 2015 Keybase, Inc. All rights reserved. Use of 2 // this source code is governed by the included BSD license. 3 4 package client 5 6 import ( 7 "fmt" 8 "github.com/keybase/cli" 9 "github.com/keybase/client/go/libcmdline" 10 "github.com/keybase/client/go/libkb" 11 keybase1 "github.com/keybase/client/go/protocol/keybase1" 12 "github.com/keybase/go-framed-msgpack-rpc/rpc" 13 "golang.org/x/net/context" 14 ) 15 16 type CmdFakeTrackingChanged struct { 17 libkb.Contextified 18 arg keybase1.FakeTrackingChangedArg 19 } 20 21 func (c *CmdFakeTrackingChanged) ParseArgv(ctx *cli.Context) error { 22 if len(ctx.Args()) != 1 { 23 return fmt.Errorf("Must provide exactly one username.") 24 } 25 c.arg.Username = ctx.Args()[0] 26 return nil 27 } 28 29 func (c *CmdFakeTrackingChanged) Run() (err error) { 30 cli, err := GetTrackClient(c.G()) 31 if err != nil { 32 return err 33 } 34 35 protocols := []rpc.Protocol{} 36 if err = RegisterProtocolsWithContext(protocols, c.G()); err != nil { 37 return err 38 } 39 40 err = cli.FakeTrackingChanged(context.TODO(), c.arg) 41 if err != nil { 42 return err 43 } 44 return nil 45 } 46 47 func NewCmdFakeTrackingChanged(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { 48 return cli.Command{ 49 Name: "fake-following-changed", 50 Flags: []cli.Flag{}, 51 Action: func(c *cli.Context) { 52 cl.ChooseCommand(NewCmdFakeTrackingChangedRunner(g), "fake-following-changed", c) 53 }, 54 } 55 } 56 57 func NewCmdFakeTrackingChangedRunner(g *libkb.GlobalContext) *CmdFakeTrackingChanged { 58 return &CmdFakeTrackingChanged{Contextified: libkb.NewContextified(g)} 59 } 60 61 func (c *CmdFakeTrackingChanged) GetUsage() libkb.Usage { 62 return libkb.Usage{ 63 Config: true, 64 API: true, 65 } 66 }