diff --git a/commands/add.go b/commands/add.go index 3a28c424f7176d0ac7645a0daa08b602d1f0d7f3..504207fbc3374b49dc1a602f3ab8c8365cf2dd5e 100644 --- a/commands/add.go +++ b/commands/add.go @@ -19,13 +19,12 @@ func newAddCommand() *cobra.Command { options := addOptions{} cmd := &cobra.Command{ - Use: "add", - Short: "Create a new bug.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "add", + Short: "Create a new bug.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runAdd(env, options) - }, + }), } flags := cmd.Flags() diff --git a/commands/bridge.go b/commands/bridge.go index 46b3d9ecdcaaecb6fc3ccaa23f408f4c7c555e8b..8ce35aa364cf9eaf77174668c55b10b146371bb2 100644 --- a/commands/bridge.go +++ b/commands/bridge.go @@ -10,13 +10,12 @@ func newBridgeCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "bridge", - Short: "Configure and use bridges to other bug trackers.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "bridge", + Short: "Configure and use bridges to other bug trackers.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridge(env) - }, + }), Args: cobra.NoArgs, } diff --git a/commands/bridge_auth.go b/commands/bridge_auth.go index db4c5212cce5a7e46c95b3bf24e1b9a388b3025a..50306b8da70ee0d2e815c791d8590b9b2adcdb7a 100644 --- a/commands/bridge_auth.go +++ b/commands/bridge_auth.go @@ -16,13 +16,12 @@ func newBridgeAuthCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "auth", - Short: "List all known bridge authentication credentials.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "auth", + Short: "List all known bridge authentication credentials.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgeAuth(env) - }, + }), Args: cobra.NoArgs, } diff --git a/commands/bridge_auth_addtoken.go b/commands/bridge_auth_addtoken.go index 272eab8cf78b7f81735d7940ea93c0a04d207c5d..c0458fdaa0add5fcd74d827ac7870b7d0aaf77dd 100644 --- a/commands/bridge_auth_addtoken.go +++ b/commands/bridge_auth_addtoken.go @@ -27,13 +27,12 @@ func newBridgeAuthAddTokenCommand() *cobra.Command { options := bridgeAuthAddTokenOptions{} cmd := &cobra.Command{ - Use: "add-token [TOKEN]", - Short: "Store a new token", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "add-token [TOKEN]", + Short: "Store a new token", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgeAuthAddToken(env, options, args) - }, + }), Args: cobra.MaximumNArgs(1), } diff --git a/commands/bridge_auth_show.go b/commands/bridge_auth_show.go index 408a6cf172554267ad11ea8f6ef6ede1871bbec6..f174cdb73e3e7193a7b74d27b771b39530aa540a 100644 --- a/commands/bridge_auth_show.go +++ b/commands/bridge_auth_show.go @@ -15,13 +15,12 @@ func newBridgeAuthShow() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "show", - Short: "Display an authentication credential.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "show", + Short: "Display an authentication credential.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgeAuthShow(env, args) - }, + }), Args: cobra.ExactArgs(1), } diff --git a/commands/bridge_configure.go b/commands/bridge_configure.go index c0ce14612e3b5f75793d11bc90b5967dcdd18f4e..6533e4971110cf2f857a0024a34ea5a919929bf4 100644 --- a/commands/bridge_configure.go +++ b/commands/bridge_configure.go @@ -85,11 +85,10 @@ git bug bridge configure \ --target=github \ --url=https://github.com/michaelmure/git-bug \ --token=$(TOKEN)`, - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgeConfigure(env, options) - }, + }), } flags := cmd.Flags() diff --git a/commands/bridge_pull.go b/commands/bridge_pull.go index 95eb2fe04b1373b1ce39179d3be90a32dcd32c2b..3155ebf4ad0b783eea6ddeff1225f30c497bd100 100644 --- a/commands/bridge_pull.go +++ b/commands/bridge_pull.go @@ -26,13 +26,12 @@ func newBridgePullCommand() *cobra.Command { options := bridgePullOptions{} cmd := &cobra.Command{ - Use: "pull [NAME]", - Short: "Pull updates.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "pull [NAME]", + Short: "Pull updates.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgePull(env, options, args) - }, + }), Args: cobra.MaximumNArgs(1), } diff --git a/commands/bridge_push.go b/commands/bridge_push.go index 64e3ff4bcfd8db7fe9c81ef42cff3206a598cb59..a232f0f07e395cc79ec0b565ad3b824db3200c11 100644 --- a/commands/bridge_push.go +++ b/commands/bridge_push.go @@ -17,13 +17,12 @@ func newBridgePushCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "push [NAME]", - Short: "Push updates.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "push [NAME]", + Short: "Push updates.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgePush(env, args) - }, + }), Args: cobra.MaximumNArgs(1), } diff --git a/commands/bridge_rm.go b/commands/bridge_rm.go index 9f5c81c7c48e31225ef833ff01c17fa85f4cd8b4..121a35adf565d4d27df731de85ea646145cedad5 100644 --- a/commands/bridge_rm.go +++ b/commands/bridge_rm.go @@ -10,13 +10,12 @@ func newBridgeRm() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "rm NAME", - Short: "Delete a configured bridge.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "rm NAME", + Short: "Delete a configured bridge.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runBridgeRm(env, args) - }, + }), Args: cobra.ExactArgs(1), } diff --git a/commands/comment.go b/commands/comment.go index eb90624aaa2db64751ac9d847f762879e4f7128c..90657e4a9e5f2e8a029566d6794b97805126cc3a 100644 --- a/commands/comment.go +++ b/commands/comment.go @@ -12,13 +12,12 @@ func newCommentCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "comment [ID]", - Short: "Display or add comments to a bug.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "comment [ID]", + Short: "Display or add comments to a bug.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runComment(env, args) - }, + }), } cmd.AddCommand(newCommentAddCommand()) diff --git a/commands/comment_add.go b/commands/comment_add.go index 54c75702fb346c45006756a468f8a3451e3b2122..11ba5ad3a12241ee4f7b906f7a687334577204ef 100644 --- a/commands/comment_add.go +++ b/commands/comment_add.go @@ -19,13 +19,12 @@ func newCommentAddCommand() *cobra.Command { options := commentAddOptions{} cmd := &cobra.Command{ - Use: "add [ID]", - Short: "Add a new comment to a bug.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "add [ID]", + Short: "Add a new comment to a bug.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runCommentAdd(env, options, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/comment_edit.go b/commands/comment_edit.go index 6c93ed8bc2efcda74dac6e45fd9b3202070dd57d..759ea1948bf0d4bcd50980d442e3c1cca22c93cb 100644 --- a/commands/comment_edit.go +++ b/commands/comment_edit.go @@ -17,14 +17,13 @@ func newCommentEditCommand() *cobra.Command { options := commentEditOptions{} cmd := &cobra.Command{ - Use: "edit [COMMENT_ID]", - Short: "Edit an existing comment on a bug.", - Args: cobra.ExactArgs(1), - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "edit [COMMENT_ID]", + Short: "Edit an existing comment on a bug.", + Args: cobra.ExactArgs(1), + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runCommentEdit(env, options, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/deselect.go b/commands/deselect.go index 23f77e2d5093802aaf84948d7480bd2d02254e68..d8c44dd75be2322bf78b29ea801020402610dc1e 100644 --- a/commands/deselect.go +++ b/commands/deselect.go @@ -17,11 +17,10 @@ git bug comment git bug status git bug deselect `, - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runDeselect(env) - }, + }), } return cmd diff --git a/commands/env.go b/commands/env.go index 8d12c5bfa0847a314ac86811589de92ff4533b1a..ac7b789a4be0e1008e0d40a05db7e18e81eff627 100644 --- a/commands/env.go +++ b/commands/env.go @@ -136,15 +136,23 @@ func loadBackendEnsureUser(env *Env) func(*cobra.Command, []string) error { } } -// closeBackend is a post-run function that will close the backend properly +// closeBackend is a wrapper for a RunE function that will close the backend properly // if it has been opened. -func closeBackend(env *Env) func(*cobra.Command, []string) error { +// This wrapper style is necessary because a Cobra PostE function does not run if RunE return an error. +func closeBackend(env *Env, runE func(cmd *cobra.Command, args []string) error) func(*cobra.Command, []string) error { return func(cmd *cobra.Command, args []string) error { + errRun := runE(cmd, args) + if env.backend == nil { return nil } err := env.backend.Close() env.backend = nil + + // prioritize the RunE error + if errRun != nil { + return errRun + } return err } } diff --git a/commands/label.go b/commands/label.go index e3ffdb64466c61cb4bce4292d4fe61eb53dd46ea..d108b08949d4f4d13b6f57733058071b0565e5b0 100644 --- a/commands/label.go +++ b/commands/label.go @@ -10,13 +10,12 @@ func newLabelCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "label [ID]", - Short: "Display, add or remove labels to/from a bug.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "label [ID]", + Short: "Display, add or remove labels to/from a bug.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLabel(env, args) - }, + }), } cmd.AddCommand(newLabelAddCommand()) diff --git a/commands/label_add.go b/commands/label_add.go index 30c0d77f97ee7cbced1d8f0d25a278f90111de51..c60ecfebb0214b54c68e04c8a351fc268aafbc3d 100644 --- a/commands/label_add.go +++ b/commands/label_add.go @@ -11,13 +11,12 @@ func newLabelAddCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "add [ID] LABEL...", - Short: "Add a label to a bug.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "add [ID] LABEL...", + Short: "Add a label to a bug.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLabelAdd(env, args) - }, + }), } return cmd diff --git a/commands/label_rm.go b/commands/label_rm.go index 9fb3e096763db0e6807c5c8e5950564d6f915382..1cdcd248ac26bcf5de5a3559cfc1dd526f3ebfb5 100644 --- a/commands/label_rm.go +++ b/commands/label_rm.go @@ -11,13 +11,12 @@ func newLabelRmCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "rm [ID] LABEL...", - Short: "Remove a label from a bug.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "rm [ID] LABEL...", + Short: "Remove a label from a bug.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLabelRm(env, args) - }, + }), } return cmd diff --git a/commands/ls-id.go b/commands/ls-id.go index 686f432aff2a26e570bd6269f5ddfe47a4846739..41f017e8493a50e6e63a2f3561163d153435b5a2 100644 --- a/commands/ls-id.go +++ b/commands/ls-id.go @@ -8,13 +8,12 @@ func newLsIdCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "ls-id [PREFIX]", - Short: "List bug identifiers.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "ls-id [PREFIX]", + Short: "List bug identifiers.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLsId(env, args) - }, + }), } return cmd diff --git a/commands/ls-labels.go b/commands/ls-labels.go index a7c2fb6ff2c54a27e313cd9cbcb4a3441d71ba08..086943a9efd089bbf50e0956a0aad699d82df70d 100644 --- a/commands/ls-labels.go +++ b/commands/ls-labels.go @@ -13,11 +13,10 @@ func newLsLabelCommand() *cobra.Command { Long: `List valid labels. Note: in the future, a proper label policy could be implemented where valid labels are defined in a configuration file. Until that, the default behavior is to return the list of labels already used.`, - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLsLabel(env) - }, + }), } return cmd diff --git a/commands/ls.go b/commands/ls.go index 71c420c63501184bd4dff357b9077b1bffb6e812..9134d7527a3ae94a3c1d5149de2debcf66513efa 100644 --- a/commands/ls.go +++ b/commands/ls.go @@ -52,11 +52,10 @@ git bug ls "foo bar" baz Use queries, flags, and full text search: git bug ls status:open --by creation "foo bar" baz `, - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runLs(env, options, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/pull.go b/commands/pull.go index 3ad4a0c91c67496acee05bd2e3a9d200121b7a9d..f3a314148f89562cdd596804e0522a83f0325786 100644 --- a/commands/pull.go +++ b/commands/pull.go @@ -12,13 +12,12 @@ func newPullCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "pull [REMOTE]", - Short: "Pull bugs update from a git remote.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "pull [REMOTE]", + Short: "Pull bugs update from a git remote.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runPull(env, args) - }, + }), } return cmd diff --git a/commands/push.go b/commands/push.go index 89385f108287ab7ca5d5cc99f5cc35036a95433b..9d6ca7df321e3975ea025f85f3c9018d2c56ac9c 100644 --- a/commands/push.go +++ b/commands/push.go @@ -10,13 +10,12 @@ func newPushCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "push [REMOTE]", - Short: "Push bugs update to a git remote.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "push [REMOTE]", + Short: "Push bugs update to a git remote.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runPush(env, args) - }, + }), } return cmd diff --git a/commands/rm.go b/commands/rm.go index 3ad4548de15a83f88cd565edda80a93effe089c7..8205c128c20face74fef4c29095ca52d353f5e21 100644 --- a/commands/rm.go +++ b/commands/rm.go @@ -10,14 +10,13 @@ func newRmCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "rm ID", - Short: "Remove an existing bug.", - Long: "Remove an existing bug in the local repository. Note removing bugs that were imported from bridges will not remove the bug on the remote, and will only remove the local copy of the bug.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "rm ID", + Short: "Remove an existing bug.", + Long: "Remove an existing bug in the local repository. Note removing bugs that were imported from bridges will not remove the bug on the remote, and will only remove the local copy of the bug.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runRm(env, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/select.go b/commands/select.go index 64e38d9bd02785626b8466d3e6c19d3fad472611..34d00a325f02891c94948af628c5826b082cab5c 100644 --- a/commands/select.go +++ b/commands/select.go @@ -27,11 +27,10 @@ instead of The complementary command is "git bug deselect" performing the opposite operation. `, - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runSelect(env, args) - }, + }), } return cmd diff --git a/commands/show.go b/commands/show.go index 10087f927e0e504c70a42408c9951beaee4485e7..551403578a3938e6bb1ed627ece0098fbc1bdaab 100644 --- a/commands/show.go +++ b/commands/show.go @@ -23,13 +23,12 @@ func newShowCommand() *cobra.Command { options := showOptions{} cmd := &cobra.Command{ - Use: "show [ID]", - Short: "Display the details of a bug.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "show [ID]", + Short: "Display the details of a bug.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runShow(env, options, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/status.go b/commands/status.go index 4dceb51c3773e84452c159831b255dc9f62ca24e..c1e45c5fae65becbf6cd9b0566738575c88ac949 100644 --- a/commands/status.go +++ b/commands/status.go @@ -9,13 +9,12 @@ func newStatusCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "status [ID]", - Short: "Display or change a bug status.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "status [ID]", + Short: "Display or change a bug status.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runStatus(env, args) - }, + }), } cmd.AddCommand(newStatusCloseCommand()) diff --git a/commands/status_close.go b/commands/status_close.go index 76f2a758a257cf824ca50b3f265b6ab36595d7e4..8541aa0b6426fa634e31548fd33d2acd80fe78e2 100644 --- a/commands/status_close.go +++ b/commands/status_close.go @@ -9,13 +9,12 @@ func newStatusCloseCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "close [ID]", - Short: "Mark a bug as closed.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "close [ID]", + Short: "Mark a bug as closed.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runStatusClose(env, args) - }, + }), } return cmd diff --git a/commands/status_open.go b/commands/status_open.go index ff77856106903f03674c9f84b9a51d3dd0a45e6c..ee6bd27abdeefb074ac30752dc21bf6f313cfa89 100644 --- a/commands/status_open.go +++ b/commands/status_open.go @@ -9,13 +9,12 @@ func newStatusOpenCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "open [ID]", - Short: "Mark a bug as open.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "open [ID]", + Short: "Mark a bug as open.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runStatusOpen(env, args) - }, + }), } return cmd diff --git a/commands/termui.go b/commands/termui.go index 1470790fc122f274edc90cfc239976932ec642e4..4df6cdaf521dc9ff7bea02d6272ae836b7564eb8 100644 --- a/commands/termui.go +++ b/commands/termui.go @@ -10,14 +10,13 @@ func newTermUICommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "termui", - Aliases: []string{"tui"}, - Short: "Launch the terminal UI.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "termui", + Aliases: []string{"tui"}, + Short: "Launch the terminal UI.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runTermUI(env) - }, + }), } return cmd diff --git a/commands/title.go b/commands/title.go index 7afa07ce711b7d4905036c7c861fd24dc99959d2..c429353063a16dbe7386690e02632395df99f1c4 100644 --- a/commands/title.go +++ b/commands/title.go @@ -9,13 +9,12 @@ func newTitleCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "title [ID]", - Short: "Display or change a title of a bug.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "title [ID]", + Short: "Display or change a title of a bug.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runTitle(env, args) - }, + }), } cmd.AddCommand(newTitleEditCommand()) diff --git a/commands/title_edit.go b/commands/title_edit.go index 09415e499c45e3ea8a8d417c275f772ca10931fd..810c5e6225fff091b17692f9a51caea9c0cbed14 100644 --- a/commands/title_edit.go +++ b/commands/title_edit.go @@ -18,13 +18,12 @@ func newTitleEditCommand() *cobra.Command { options := titleEditOptions{} cmd := &cobra.Command{ - Use: "edit [ID]", - Short: "Edit a title of a bug.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "edit [ID]", + Short: "Edit a title of a bug.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runTitleEdit(env, options, args) - }, + }), } flags := cmd.Flags() diff --git a/commands/user.go b/commands/user.go index 29c4e932016af3504698ba3ddb658dda4d65e04f..b6a2e48513d627c63ddeca78f8c553f9bb2811b5 100644 --- a/commands/user.go +++ b/commands/user.go @@ -18,13 +18,12 @@ func newUserCommand() *cobra.Command { options := userOptions{} cmd := &cobra.Command{ - Use: "user [USER-ID]", - Short: "Display or change the user identity.", - PreRunE: loadBackendEnsureUser(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "user [USER-ID]", + Short: "Display or change the user identity.", + PreRunE: loadBackendEnsureUser(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runUser(env, options, args) - }, + }), } cmd.AddCommand(newUserAdoptCommand()) diff --git a/commands/user_adopt.go b/commands/user_adopt.go index 5ab6e39c0de33ebdb858827b91034258210644e9..166063ae7d62595e883664d9000ccb5e50e8b170 100644 --- a/commands/user_adopt.go +++ b/commands/user_adopt.go @@ -8,14 +8,13 @@ func newUserAdoptCommand() *cobra.Command { env := newEnv() cmd := &cobra.Command{ - Use: "adopt USER-ID", - Short: "Adopt an existing identity as your own.", - Args: cobra.ExactArgs(1), - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "adopt USER-ID", + Short: "Adopt an existing identity as your own.", + Args: cobra.ExactArgs(1), + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runUserAdopt(env, args) - }, + }), } return cmd diff --git a/commands/user_create.go b/commands/user_create.go index 0dcfa9b3cbaee8ed0f4c2558bfc185149112362e..b5cb0528b47116f44ae09bd1b74b9866a3329b2e 100644 --- a/commands/user_create.go +++ b/commands/user_create.go @@ -18,13 +18,12 @@ func newUserCreateCommand() *cobra.Command { options := createUserOptions{} cmd := &cobra.Command{ - Use: "create", - Short: "Create a new identity.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "create", + Short: "Create a new identity.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runUserCreate(env, options) - }, + }), } flags := cmd.Flags() diff --git a/commands/user_ls.go b/commands/user_ls.go index 05d343d684a875897620b6944bad3ab9e21dd509..98800b87bd802747200aa6f6e70efb7e5c2b41dd 100644 --- a/commands/user_ls.go +++ b/commands/user_ls.go @@ -19,13 +19,12 @@ func newUserLsCommand() *cobra.Command { options := userLsOptions{} cmd := &cobra.Command{ - Use: "ls", - Short: "List identities.", - PreRunE: loadBackend(env), - PostRunE: closeBackend(env), - RunE: func(cmd *cobra.Command, args []string) error { + Use: "ls", + Short: "List identities.", + PreRunE: loadBackend(env), + RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error { return runUserLs(env, options) - }, + }), } flags := cmd.Flags()