From 5a7b87d1abfec09384137b7bf5cf9da906d7dd82 Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Mon, 7 Jun 2021 13:43:31 -0500 Subject: initial commit --- main.go | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..511736a --- /dev/null +++ b/main.go @@ -0,0 +1,80 @@ +package main + +import ( + "context" + "flag" + "os" + + "github.com/google/subcommands" +) + +type FetchCmd struct{} + +func (s *FetchCmd) Name() string { return "fetch" } + +func (s *FetchCmd) Synopsis() string { return "fetch SSH keys for the given Github Users" } + +func (s *FetchCmd) Usage() string { + return `fetch [user 1] [user 2]` +} + +func (s *FetchCmd) SetFlags(_ *flag.FlagSet) {} + +func (s *FetchCmd) Execute( + _ context.Context, + f *flag.FlagSet, _ ...interface{}, +) subcommands.ExitStatus { + Fetch(f.Args()...) + return subcommands.ExitSuccess +} + +type SyncUsersCmd struct{} + +func (s *SyncUsersCmd) Name() string { return "sync-users" } + +func (s *SyncUsersCmd) Synopsis() string { return "Sync SSH keys for the given users." } + +func (s *SyncUsersCmd) Usage() string { + return `sync-user [user1] [user2]` +} + +func (s *SyncUsersCmd) SetFlags(_ *flag.FlagSet) {} + +func (s *SyncUsersCmd) Execute( + _ context.Context, + f *flag.FlagSet, _ ...interface{}, +) subcommands.ExitStatus { + SyncUsers(f.Args()...) + return subcommands.ExitSuccess +} + +type SyncGroupsCmd struct{} + +func (s *SyncGroupsCmd) Name() string { return "sync-group" } + +func (s *SyncGroupsCmd) Synopsis() string { return "Sync SSH keys for the given groups." } + +func (s *SyncGroupsCmd) Usage() string { return `sync-group [group1] [group2]` } + +func (s *SyncGroupsCmd) SetFlags(_ *flag.FlagSet) {} + +func (s *SyncGroupsCmd) Execute( + _ context.Context, + f *flag.FlagSet, _ ...interface{}, +) subcommands.ExitStatus { + SyncGroups(f.Args()...) + return subcommands.ExitSuccess +} + +func main() { + subcommands.Register(subcommands.HelpCommand(), "") + subcommands.Register(subcommands.FlagsCommand(), "") + subcommands.Register(subcommands.CommandsCommand(), "") + subcommands.Register(&FetchCmd{}, "") + subcommands.Register(&SyncUsersCmd{}, "") + subcommands.Register(&SyncGroupsCmd{}, "") + + flag.Parse() + ctx := context.Background() + os.Exit(int(subcommands.Execute(ctx))) +} -- cgit v1.2.3