id = "bundler" name = "Bundler" homepage = "https://bundler.io" description = "Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed." # The tape dispenser, from bundler.io's apple-touch-icon. icon = "https://bundler.io/images/apple-touch-icon.png" executables = ["bundle", "bundler"] [dotfiles] # bundle-config(1): "Bundler loads configuration settings in this order: # 1. Local config (app/.bundle/config) 2. Environmental variables (ENV) # 3. Global config (~/.bundle/config) 4. Bundler default config" — and # "The configuration will be stored in ~/.bundle/config". Only the global file # is user-level; app/.bundle/config belongs to a project. paths = ["~/.bundle/config"] exclude = [] # The file is a YAML map of BUNDLE_* settings and is worth syncing; the # credential entries below are lifted out of it. secret = [] # Read at the start of each bundle command. side_effect = false # bundle-config(1), "CREDENTIALS FOR GEM SOURCES": `bundle config # SOURCE_HOSTNAME USERNAME:PASSWORD` stores the credential in this file under # BUNDLE_. Any host can appear, so the two # forms below cover the documented cases (gems.* sources such as Sidekiq Pro, # and github.com for private git sources); a consumer that scans values should # treat every BUNDLE_ entry holding "user:password" the same way. [[dotfiles.secret_paths]] file = "~/.bundle/config" match = { prefix = ["BUNDLE_GEMS__", "BUNDLE_GITHUB__COM"] } # BUNDLE_BUILD__ passes native-extension flags to the compiler, and those # flags name libraries by absolute path — a Homebrew prefix on one machine, a # distro path on the next. That is the platform talking rather than the # machine: every Mac of the same architecture spells # /opt/homebrew/opt/libpq the same way, whoever is logged in, so the line # travels to a machine of the same class. [[dotfiles.machine_lines]] file = "~/.bundle/config" match = { prefix = ["BUNDLE_BUILD__"] } scope = "platform" [commands] format = 1 label = "Bundler" description = "Install, update and add gems for a Ruby project. Only everyday bundle commands are covered; exec, config, gem and binstubs are left out." quality = "ai-draft" base = "fig:bundle" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts" license = "MIT" [[commands.subcommand]] path = ["install"] label = "Install gems" description = "Install the gems in the Gemfile or Gemfile.lock. Path, binstub and trust-policy options are left out." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts" license = "MIT" [[commands.subcommand.field]] id = "deployment" label = "Deployment mode" description = "For production and CI use." type = "boolean" option = ["--deployment"] sources = ["fig"] [[commands.subcommand.field]] id = "frozen" label = "Frozen lockfile" description = "Do not allow the lock file to update." type = "boolean" option = ["--frozen"] sources = ["fig"] [[commands.subcommand.field]] id = "local" label = "Local gems only" description = "Use only gems already downloaded or cached." type = "boolean" option = ["--local"] sources = ["fig"] [[commands.subcommand.field]] id = "jobs" label = "Parallel jobs" description = "Maximum number of parallel installs." type = "integer" option = ["--jobs"] sources = ["fig"] [[commands.subcommand.field]] id = "retry" label = "Retries" description = "Retry failed network requests N times." type = "integer" option = ["--retry"] sources = ["fig"] [[commands.subcommand.field]] id = "without" label = "Skip groups" description = "Groups to NOT install." type = "string" option = ["--without"] sources = ["fig"] [[commands.subcommand.field]] id = "with" label = "Include groups" description = "Groups to install." type = "string" option = ["--with"] sources = ["fig"] [[commands.subcommand.field]] id = "gemfile" label = "Gemfile" description = "The Gemfile to use." type = "path" option = ["--gemfile"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "clean" label = "Remove unused gems" description = "Remove unused gems after install." type = "boolean" option = ["--clean"] effect = "delete" sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" description = "Do not print to stdout." type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install" fields = ["local", "jobs"] required = [] [[commands.subcommand.task]] id = "ci" label = "CI install" set = { deployment = [true] } fields = ["deployment", "frozen", "jobs"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["deployment", "frozen", "local", "jobs"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["without", "with", "gemfile", "clean", "quiet", "retry"] [[commands.subcommand]] path = ["update"] label = "Update gems" description = "Update gems to newer versions. Leave the gem name empty and tick \"all\" to update everything." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts" license = "MIT" [[commands.subcommand.field]] id = "gem" label = "Gem" description = "Gem to update; repeat to update several." type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Update all gems" description = "Update all gems specified in the Gemfile." type = "boolean" option = ["--all"] sources = ["fig"] [[commands.subcommand.field]] id = "patch" label = "Patch only" description = "Prefer updating only to the next patch version." type = "boolean" option = ["--patch"] sources = ["fig"] [[commands.subcommand.field]] id = "minor" label = "Minor only" description = "Prefer updating only to the next minor version." type = "boolean" option = ["--minor"] sources = ["fig"] [[commands.subcommand.field]] id = "major" label = "Major allowed" description = "Prefer updating to the next major version (default)." type = "boolean" option = ["--major"] sources = ["fig"] [[commands.subcommand.field]] id = "conservative" label = "Conservative" description = "Do not allow shared dependencies to be updated." type = "boolean" option = ["--conservative"] sources = ["fig"] [[commands.subcommand.field]] id = "local" label = "Local gems only" description = "Use only gems already downloaded or cached." type = "boolean" option = ["--local"] sources = ["fig"] [[commands.subcommand.field]] id = "group" label = "Group" description = "Only update the gems in the specified group." type = "string" option = ["--group", "-g"] sources = ["fig"] [[commands.subcommand.field]] id = "jobs" label = "Parallel jobs" description = "Number of jobs to run in parallel." type = "integer" option = ["-j", "--jobs"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" description = "Only output warnings and errors." type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "all" label = "Update everything" set = { all = [true] } fields = ["all"] required = [] [[commands.subcommand.task]] id = "gem" label = "Update one gem" fields = ["gem", "patch", "minor", "conservative"] required = ["gem"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["gem", "all", "patch", "minor", "major"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["conservative", "local", "group", "jobs", "quiet"] [[commands.subcommand]] path = ["add"] label = "Add a gem" description = "Add a gem to the Gemfile and run bundle install." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts" license = "MIT" [[commands.subcommand.field]] id = "gem" label = "Gem name" description = "Name of the gem to add." type = "string" position = 0 min = 1 sources = ["fig"] [[commands.subcommand.field]] id = "version" label = "Version requirement" description = "Specify version requirements, e.g. ~> 1.2." type = "string" option = ["--version", "-v"] sources = ["fig"] [[commands.subcommand.field]] id = "group" label = "Group" description = "Group(s) for the added gem, e.g. development." type = "string" option = ["--group", "-g"] sources = ["fig"] [[commands.subcommand.field]] id = "source" label = "Source" description = "Gem source." type = "string" option = ["--source", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_install" label = "Skip install" description = "Add to the Gemfile without installing." type = "boolean" option = ["--skip-install"] sources = ["fig"] [[commands.subcommand.field]] id = "optimistic" label = "Optimistic version" description = "Adds optimistic declaration of version." type = "boolean" option = ["--optimistic"] sources = ["fig"] [[commands.subcommand.field]] id = "strict" label = "Strict version" description = "Adds strict declaration of version." type = "boolean" option = ["--strict"] sources = ["fig"] [[commands.subcommand.task]] id = "dev" label = "Add a development gem" set = { group = ["development"] } fields = ["gem", "group", "version"] required = ["gem"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["gem", "version", "group", "skip_install"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["source", "optimistic", "strict"]