Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions cargo-dist-schema/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -581,9 +581,23 @@ pub struct EnvironmentVariables {
pub disable_update_env_var: String,
/// Environment variable to disable modifying the path
pub no_modify_path_env_var: String,
/// Environment variable to make the installer more quiet
pub print_quiet_env_var: String,
/// Environment variable to make the installer more verbose
pub print_verbose_env_var: String,
/// Environment variable to override the URL to download from
///
/// This trumps the base_url env vars below.
pub download_url_env_var: String,
/// Environment variable to set the GitHub base URL
///
/// `{owner}/{repo}` will be added to the end of this value to
/// construct the installer_download_url.
pub github_base_url_env_var: String,
/// Environment variable to set the GitHub Enterprise base URL
///
/// `{owner}/{repo}` will be added to the end of this value to
/// construct the installer_download_url.
pub ghe_base_url_env_var: String,
/// Environment variable to set the GitHub BEARER token when fetching archives
pub github_token_env_var: String,
Expand Down Expand Up @@ -911,17 +925,23 @@ impl DistManifest {
} else {
let env_app_name = name.to_ascii_uppercase().replace('-', "_");
let install_dir_env_var = format!("{env_app_name}_INSTALL_DIR");
let download_url_env_var = format!("{env_app_name}_DOWNLOAD_URL");
let unmanaged_dir_env_var = format!("{env_app_name}_UNMANAGED_INSTALL");
let disable_update_env_var = format!("{env_app_name}_DISABLE_UPDATE");
let print_quiet_env_var = format!("{env_app_name}_PRINT_QUIET");
let print_verbose_env_var = format!("{env_app_name}_PRINT_VERBOSE");
let no_modify_path_env_var = format!("{env_app_name}_NO_MODIFY_PATH");
let github_base_url_env_var = format!("{env_app_name}_INSTALLER_GITHUB_BASE_URL");
let ghe_base_url_env_var = format!("{env_app_name}_INSTALLER_GHE_BASE_URL");
let github_token_env_var = format!("{env_app_name}_GITHUB_TOKEN");

let environment_variables = EnvironmentVariables {
install_dir_env_var,
download_url_env_var,
unmanaged_dir_env_var,
disable_update_env_var,
print_quiet_env_var,
print_verbose_env_var,
no_modify_path_env_var,
github_base_url_env_var,
ghe_base_url_env_var,
Expand Down
19 changes: 17 additions & 2 deletions cargo-dist-schema/src/snapshots/cargo_dist_schema__emit.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion cargo-dist/templates/installer/installer.ps1.j2
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ if ($env:{{ env_vars.ghe_base_url_env_var }}) {
} else {
$installer_base_url = "{{ hosting.github.artifact_base_url }}"
}
if ($env:INSTALLER_DOWNLOAD_URL) {
if ($env:{{ env_vars.download_url_env_var }}) {
$ArtifactDownloadUrl = $env:{{ env_vars.download_url_env_var }}
} elseif ($env:INSTALLER_DOWNLOAD_URL) {
$ArtifactDownloadUrl = $env:INSTALLER_DOWNLOAD_URL
} else {
$ArtifactDownloadUrl = "$installer_base_url{{ hosting.github.artifact_download_path }}"
Expand Down
16 changes: 13 additions & 3 deletions cargo-dist/templates/installer/installer.sh.j2
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,23 @@ if [ -n "{{ '${' }}{{ env_vars.ghe_base_url_env_var }}:-}" ]; then
else
INSTALLER_BASE_URL="{{ '${' }}{{ env_vars.github_base_url_env_var }}:-{{ hosting.github.artifact_base_url }}}"
fi
if [ -n "${INSTALLER_DOWNLOAD_URL:-}" ]; then
if [ -n "{{ '${' }}{{ env_vars.download_url_env_var }}:-}" ]; then
ARTIFACT_DOWNLOAD_URL="${{ env_vars.download_url_env_var }}"
elif [ -n "${INSTALLER_DOWNLOAD_URL:-}" ]; then
ARTIFACT_DOWNLOAD_URL="$INSTALLER_DOWNLOAD_URL"
else
ARTIFACT_DOWNLOAD_URL="${INSTALLER_BASE_URL}{{ hosting.github.artifact_download_path }}"
fi
PRINT_VERBOSE=${INSTALLER_PRINT_VERBOSE:-0}
PRINT_QUIET=${INSTALLER_PRINT_QUIET:-0}
if [ -n "{{ '${' }}{{ env_vars.print_verbose_env_var }}:-}" ]; then
PRINT_VERBOSE="${{ env_vars.print_verbose_env_var }}"
else
PRINT_VERBOSE=${INSTALLER_PRINT_VERBOSE:-0}
fi
if [ -n "{{ '${' }}{{ env_vars.print_quiet_env_var }}:-}" ]; then
PRINT_QUIET="${{ env_vars.print_quiet_env_var }}"
else
PRINT_QUIET=${INSTALLER_PRINT_QUIET:-0}
fi
if [ -n "{{ '${' }}{{ env_vars.no_modify_path_env_var }}:-}" ]; then
NO_MODIFY_PATH="${{ env_vars.no_modify_path_env_var }}"
else
Expand Down
24 changes: 19 additions & 5 deletions cargo-dist/tests/snapshots/akaikatana_basic.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 19 additions & 5 deletions cargo-dist/tests/snapshots/akaikatana_bins.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 16 additions & 4 deletions cargo-dist/tests/snapshots/akaikatana_musl.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading