From 843286f27c7c2b183b0dd18344594aa7d4efaf51 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Fri, 17 May 2024 16:31:00 -0700 Subject: [PATCH] Allow setting some command-line options with environment variables (#2044) --- README.md | 17 +++++++++++++++-- src/config.rs | 7 +++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7848d65..a75b6bd 100644 --- a/README.md +++ b/README.md @@ -1395,7 +1395,6 @@ $ just The process ID is: 420 ``` - #### String Manipulation - `append(suffix, s)`master Append `suffix` to whitespace-separated @@ -2514,7 +2513,21 @@ $ just --show polyglot polyglot: python js perl sh ruby ``` -Run `just --help` to see all the options. +Some command-line options can be set with environment variables. For example: + +```sh +$ export JUST_UNSTABLE=1 +$ just +``` + +Is equivalent to: + +```sh +$ just --unstable +``` + +Consult `just --help` to see which options can be set from environment +variables. ### Private Recipes diff --git a/src/config.rs b/src/config.rs index e47fe7f..53b76aa 100644 --- a/src/config.rs +++ b/src/config.rs @@ -176,6 +176,7 @@ impl Config { .arg( Arg::new(arg::COLOR) .long("color") + .env("JUST_COLOR") .action(ArgAction::Set) .value_parser(PossibleValuesParser::new(arg::COLOR_VALUES)) .default_value(arg::COLOR_AUTO) @@ -184,6 +185,7 @@ impl Config { .arg( Arg::new(arg::COMMAND_COLOR) .long("command-color") + .env("JUST_COMMAND_COLOR") .action(ArgAction::Set) .value_parser(PossibleValuesParser::new(arg::COMMAND_COLOR_VALUES)) .help("Echo recipe lines in "), @@ -193,6 +195,7 @@ impl Config { Arg::new(arg::DRY_RUN) .short('n') .long("dry-run") + .env("JUST_DRY_RUN") .action(ArgAction::SetTrue) .help("Print what just would do without doing it") .conflicts_with(arg::QUIET), @@ -257,6 +260,7 @@ impl Config { Arg::new(arg::JUSTFILE) .short('f') .long("justfile") + .env("JUST_JUSTFILE") .action(ArgAction::Set) .value_parser(value_parser!(PathBuf)) .help("Use as justfile"), @@ -265,6 +269,7 @@ impl Config { Arg::new(arg::QUIET) .short('q') .long("quiet") + .env("JUST_QUIET") .action(ArgAction::SetTrue) .help("Suppress all output") .conflicts_with(arg::DRY_RUN), @@ -324,6 +329,7 @@ impl Config { Arg::new(arg::VERBOSE) .short('v') .long("verbose") + .env("JUST_VERBOSE") .action(ArgAction::Count) .help("Use verbose output"), ) @@ -331,6 +337,7 @@ impl Config { Arg::new(arg::WORKING_DIRECTORY) .short('d') .long("working-directory") + .env("JUST_WORKING_DIRECTORY") .action(ArgAction::Set) .value_parser(value_parser!(PathBuf)) .help("Use as working directory. --justfile must also be set")