Skip to content

Commit

Permalink
Add group selection for dump command
Browse files Browse the repository at this point in the history
  • Loading branch information
tony-sol committed Jun 12, 2023
1 parent 4a99ca5 commit e967a86
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 11 deletions.
7 changes: 7 additions & 0 deletions cmd/bundle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,13 @@ def bundle
describe: args.describe?,
force: args.force?,
no_restart: args.no_restart?,
all: args.all?,
taps: args.taps?,
brews: args.brews?,
casks: args.casks?,
mas: args.mas?,
whalebrew: args.whalebrew?,
vscode: args.vscode?,
)
when "cleanup"
Bundle::Commands::Cleanup.run(
Expand Down
12 changes: 11 additions & 1 deletion completions/zsh/brew-bundle
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,17 @@ _brew_bundle_dump() {
'-f[overwrite an existing Brewfile]' \
'--force[overwrite an existing Brewfile]' \
'--describe[add a description comment above each line, unless the dependency does not have a description]' \
"--no-restart[don't add restart_service to formula lines]"
"--no-restart[don't add restart_service to formula lines]" \
'--all[dump all dependencies]' \
'--formula[dump Homebrew dependencies]' \
'--brews[dump Homebrew dependencies]' \
'--cask[dump Homebrew Cask dependencies]' \
'--casks[dump Homebrew Cask dependencies]' \
'--tap[dump tap dependencies]' \
'--taps[dump tap dependencies]' \
'--mas[dump Mac App Store dependencies]' \
'--whalebrew[dump Whalebrew dependencies]' \
'--vscode[dump VSCode extensions]'
}

_brew_bundle_cleanup() {
Expand Down
6 changes: 5 additions & 1 deletion lib/bundle/commands/dump.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ module Commands
module Dump
module_function

def run(global: false, file: nil, describe: false, force: false, no_restart: false)
def run(global: false, file: nil, describe: false, force: false, no_restart: false,
all: false, taps: false, brews: false, casks: false,
mas: false, whalebrew: false, vscode: false)
Bundle::Dumper.dump_brewfile(
global: global, file: file, describe: describe, force: force, no_restart: no_restart,
all: all, taps: taps, brews: brews, casks: casks,
mas: mas, whalebrew: whalebrew, vscode: vscode
)
end
end
Expand Down
25 changes: 16 additions & 9 deletions lib/bundle/dumper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,28 @@ def can_write_to_brewfile?(brewfile_path, force: false)
true
end

def build_brewfile(describe: false, no_restart: false)
def build_brewfile(describe: false, no_restart: false,
all: false, taps: false, brews: false, casks: false,
mas: false, whalebrew: false, vscode: false)
all = all || !(taps || brews || casks || mas || whalebrew || vscode)

Check failure on line 19 in lib/bundle/dumper.rb

View workflow job for this annotation

GitHub Actions / tests (ubuntu-latest)

Style/SelfAssignment: Use self-assignment shorthand `||=`.
content = []
content << TapDumper.dump
content << BrewDumper.dump(describe: describe, no_restart: no_restart)
content << CaskDumper.dump(describe: describe)
content << MacAppStoreDumper.dump
content << WhalebrewDumper.dump
content << VscodeExtensionDumper.dump
content << TapDumper.dump if taps || all
content << BrewDumper.dump(describe: describe, no_restart: no_restart) if brews || all
content << CaskDumper.dump(describe: describe) if casks || all
content << MacAppStoreDumper.dump if mas || all
content << WhalebrewDumper.dump if whalebrew || all
content << VscodeExtensionDumper.dump if vscode || all
"#{content.reject(&:empty?).join("\n")}\n"
end

def dump_brewfile(global: false, file: nil, describe: false, force: false, no_restart: false)
def dump_brewfile(global: false, file: nil, describe: false, force: false, no_restart: false,
all: false, taps: false, brews: false, casks: false,
mas: false, whalebrew: false, vscode: false)
path = brewfile_path(global: global, file: file)
can_write_to_brewfile?(path, force: force)
content = build_brewfile(describe: describe, no_restart: no_restart)
content = build_brewfile(describe: describe, no_restart: no_restart,
all: all, taps: taps, brews: brews, casks: casks,
mas: mas, whalebrew: whalebrew, vscode: vscode)
write_file path, content
end

Expand Down

0 comments on commit e967a86

Please sign in to comment.