{"action":"opened","issue":{"url":"https://api.github.com/repos/codegangsta/cli/issues/310","labels_url":"https://api.github.com/repos/codegangsta/cli/issues/310/labels{/name}","comments_url":"https://api.github.com/repos/codegangsta/cli/issues/310/comments","events_url":"https://api.github.com/repos/codegangsta/cli/issues/310/events","html_url":"https://github.com/codegangsta/cli/issues/310","id":122153574,"number":310,"title":"app.Before is swallowing the error:","user":{"login":"ahmetalpbalkan","id":159209,"avatar_url":"https://avatars.githubusercontent.com/u/159209?v=3","gravatar_id":"","url":"https://api.github.com/users/ahmetalpbalkan","html_url":"https://github.com/ahmetalpbalkan","followers_url":"https://api.github.com/users/ahmetalpbalkan/followers","following_url":"https://api.github.com/users/ahmetalpbalkan/following{/other_user}","gists_url":"https://api.github.com/users/ahmetalpbalkan/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetalpbalkan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetalpbalkan/subscriptions","organizations_url":"https://api.github.com/users/ahmetalpbalkan/orgs","repos_url":"https://api.github.com/users/ahmetalpbalkan/repos","events_url":"https://api.github.com/users/ahmetalpbalkan/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetalpbalkan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-14T23:10:24Z","updated_at":"2015-12-14T23:10:24Z","closed_at":null,"body":"```\r\n    // An action to execute before any subcommands are run, but after the context is ready\r\n    // If a non-nil error is returned, no subcommands are run\r\n    Before func(context *Context) error\r\n```\r\n\r\nInside the `Before` function, if I return an error, it just exits the program silently (as advertised does not execute the subcommands) but it does not print the returned error to the output.\r\n\r\nI can hardly imagine this behavior being useful to anyone. If we want to stop processingf based on the return value, we could just use `bool` instead of `error` as the return type? If the user is returning `error`, they probably think it will be made use of, am I wrong?"}}