Skip to main content

ComposerCommand

Enum ComposerCommand 

Source
pub enum ComposerCommand {
    Install {
        working_dir: Option<PathBuf>,
        no_dev: bool,
        frozen: bool,
        lock_verify: bool,
        ignore_platform_reqs: bool,
        ignore_platform_req: Vec<String>,
        scripts: bool,
        no_scripts: bool,
    },
    Update {
        packages: Vec<String>,
        with_dependencies: bool,
        with_all_dependencies: bool,
        working_dir: Option<PathBuf>,
        no_dev: bool,
        dry_run: bool,
        ignore_platform_reqs: bool,
        ignore_platform_req: Vec<String>,
    },
    Validate {
        working_dir: Option<PathBuf>,
        strict: bool,
        no_check_lock: bool,
        no_check_publish: bool,
        no_check_all: bool,
        with_dependencies: bool,
        check_lock: bool,
    },
    DumpAutoloader {
        optimize: bool,
        classmap_authoritative: bool,
        no_dev: bool,
        apcu_autoloader: bool,
        apcu_prefix: Option<String>,
        autoloader_suffix: Option<String>,
        working_dir: Option<PathBuf>,
    },
    External(Vec<OsString>),
}

Variants§

§

Install

Install a project’s vendor/ from composer.lock. Reads composer.json + composer.lock in the working directory, content-hash-verifies the lock, parallel-downloads dists into vendor/, and emits vendor/autoload.php.

Fields

§working_dir: Option<PathBuf>

Run the install in this directory instead of CWD. Mirrors Composer’s --working-dir / -d.

§no_dev: bool

Skip dev-only packages and dev autoload entries.

§frozen: bool

Fail if composer.lock is out of sync with composer.json. Currently a no-op — the install already errors on content-hash mismatch by default. Accepted for parity with Composer’s CI usage.

§lock_verify: bool

Verify the lock is internally consistent (content-hash, requires, transitives) and exit. Doesn’t touch vendor/ or run the autoloader. CI-friendly read-only check.

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-). Accepted for Composer parity; bougie does not enforce platform requirements yet.

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement.

§scripts: bool

Run composer.json root scripts, overriding [scripts] run in bougie.toml. Off by default (opt-in).

§no_scripts: bool

Skip composer.json root scripts, overriding [scripts] run = true in bougie.toml (Composer-compatible --no-scripts).

§

Update

Resolve the project’s dependency graph and write a fresh composer.lock. With no package arguments this re-resolves from scratch (ignoring any existing lock); naming one or more packages does a partial update — only those packages re-resolve while every other locked package stays pinned. Pass --dry-run to preview the solution without writing the lock or touching vendor/.

Fields

§packages: Vec<String>

Packages to update (vendor/name). When given, only these packages re-resolve; every other package stays pinned to its composer.lock version (Composer’s partial update). With no packages, the whole graph re-resolves from scratch.

§with_dependencies: bool

Also update the named packages’ dependencies (Composer’s --with-dependencies / -w).

§with_all_dependencies: bool

Also update all of the named packages’ dependencies, including ones shared with other packages (Composer’s --with-all-dependencies / -W).

§working_dir: Option<PathBuf>

Run the update in this directory instead of CWD. Mirrors Composer’s --working-dir / -d.

§no_dev: bool

Skip dev-only root requires when resolving.

§dry_run: bool

Resolve and print the solution without writing composer.lock or touching vendor/. Without this flag, update writes a fresh composer.lock.

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-). Accepted for Composer parity; bougie does not enforce platform requirements yet.

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement.

§

Validate

Validate composer.json structure and contents.

Fields

§working_dir: Option<PathBuf>

Run in this directory instead of CWD.

§strict: bool

Return non-zero exit code for warnings too.

§no_check_lock: bool

Skip lock file freshness check.

§no_check_publish: bool

Skip publish-only checks (name casing, required fields).

§no_check_all: bool

Skip unbound/exact version constraint warnings.

§with_dependencies: bool

Also validate installed dependencies’ composer.json files.

§check_lock: bool

Force lock file checking even when config.lock is false.

§

DumpAutoloader

Regenerate vendor/composer/autoload_*.php against the current composer.lock. Drop-in for composer dump-autoload; output is byte-equivalent to Composer 2.8.12 with the same flags. Aliased to dump-autoload for users coming from Composer muscle-memory.

Fields

§optimize: bool

Optimize the classmap (--optimize / -o).

§classmap_authoritative: bool

Emit the classmap-authoritative static loader (--classmap-authoritative / -a). Implies --optimize.

§no_dev: bool

Skip dev autoload entries (--no-dev).

§apcu_autoloader: bool

Emit the APCu loader bootstrap (--apcu-autoloader).

§apcu_prefix: Option<String>

Explicit APCu prefix; implies --apcu-autoloader.

§autoloader_suffix: Option<String>

Override the ComposerAutoloaderInit<X> class suffix — otherwise the value from composer.json’s config.autoloader-suffix, or the composer.lock content-hash.

§working_dir: Option<PathBuf>

Run the dump in this directory instead of the current one. Mirrors Composer’s --working-dir / -d.

§

External(Vec<OsString>)

Any other composer subcommand (require, remove, show, why, outdated, audit, create-project, …) is forwarded verbatim to the project’s pinned Composer phar and run with the project’s PHP, conf.d, and vendor/bin on PATH. Only install, update, validate, and dump-autoload(er) are reimplemented natively; everything else is the real Composer.

Trait Implementations§

Source§

impl Debug for ComposerCommand

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for ComposerCommand

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for ComposerCommand

Source§

fn augment_subcommands<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.