|
6 | 6 | module Homebrew |
7 | 7 | module Cmd |
8 | 8 | class Developer < AbstractCommand |
| 9 | + require "developer/subcommand" |
| 10 | + |
9 | 11 | cmd_args do |
10 | | - description <<~EOS |
| 12 | + usage_banner <<~EOS |
| 13 | + `developer` [<subcommand>] |
| 14 | +
|
11 | 15 | Control Homebrew's developer mode. When developer mode is enabled, |
12 | 16 | `brew update` will update Homebrew to the latest commit on the `main` |
13 | 17 | branch instead of the latest stable version along with some other behaviour changes. |
14 | | -
|
15 | | - `brew developer` [`state`]: |
16 | | - Display the current state of Homebrew's developer mode. |
17 | | -
|
18 | | - `brew developer` (`on`|`off`): |
19 | | - Turn Homebrew's developer mode on or off respectively. |
20 | 18 | EOS |
21 | 19 |
|
22 | | - named_args %w[state on off], max: 1 |
| 20 | + Homebrew::AbstractSubcommand.define_all(self, command: Homebrew::Cmd::Developer) |
23 | 21 | end |
24 | 22 |
|
25 | 23 | sig { override.void } |
26 | 24 | def run |
27 | | - case args.named.first |
28 | | - when nil, "state" |
29 | | - if Homebrew::EnvConfig.developer? |
30 | | - puts "Developer mode is enabled because #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset} is set." |
31 | | - elsif Homebrew::EnvConfig.devcmdrun? |
32 | | - puts "Developer mode is enabled because a developer command or `brew developer on` was run." |
33 | | - else |
34 | | - puts "Developer mode is disabled." |
35 | | - end |
36 | | - if Homebrew::EnvConfig.developer? || Homebrew::EnvConfig.devcmdrun? |
37 | | - if Homebrew::EnvConfig.update_to_tag? |
38 | | - puts "However, `brew update` will update to the latest stable tag because " \ |
39 | | - "#{Tty.bold}HOMEBREW_UPDATE_TO_TAG#{Tty.reset} is set." |
40 | | - else |
41 | | - puts "`brew update` will update to the latest commit on the `main` branch." |
42 | | - end |
43 | | - else |
44 | | - puts "`brew update` will update to the latest stable tag." |
45 | | - end |
46 | | - when "on" |
47 | | - Homebrew::Settings.write "devcmdrun", true |
48 | | - if Homebrew::EnvConfig.update_to_tag? |
49 | | - puts "To fully enable developer mode, you must unset #{Tty.bold}HOMEBREW_UPDATE_TO_TAG#{Tty.reset}." |
50 | | - end |
51 | | - when "off" |
52 | | - Homebrew::Settings.delete "devcmdrun" |
53 | | - if Homebrew::EnvConfig.developer? |
54 | | - puts "To fully disable developer mode, you must unset #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset}." |
55 | | - end |
56 | | - else |
57 | | - raise UsageError, "unknown subcommand: #{args.named.first}" |
58 | | - end |
| 25 | + Homebrew::Cmd::Developer.dispatch(args) |
59 | 26 | end |
60 | 27 | end |
61 | 28 | end |
|
0 commit comments