# HG changeset patch # User wenzelm # Date 1667732435 -3600 # Node ID 730dadb8293667fcbb5127654891d6853402cfb7 # Parent 2b19c70c44c2c3dc7f38d2e9b1ccf56513f8ae78 clarified component settings: always update existing version; remove old component version from $ISABELLE_HOME_USER/etc/components; diff -r 2b19c70c44c2 -r 730dadb82936 src/Pure/Tools/dotnet_setup.scala --- a/src/Pure/Tools/dotnet_setup.scala Sun Nov 06 00:00:17 2022 +0100 +++ b/src/Pure/Tools/dotnet_setup.scala Sun Nov 06 12:00:35 2022 +0100 @@ -54,19 +54,6 @@ def default_install_url: String = "https://dot.net/v1/dotnet-install" def default_version: String = "6.0.402" - private val settings = """# -*- shell-script -*- :mode=shellscript: - -if [ -n "$ISABELLE_WINDOWS_PLATFORM64" -a -d "$COMPONENT/$ISABELLE_WINDOWS_PLATFORM64" ]; then - ISABELLE_DOTNET="$COMPONENT/$ISABELLE_WINDOWS_PLATFORM64/dotnet.exe" -elif [ -n "$ISABELLE_APPLE_PLATFORM64" -a -d "$COMPONENT/$ISABELLE_APPLE_PLATFORM64" ]; then - ISABELLE_DOTNET="$COMPONENT/$ISABELLE_APPLE_PLATFORM64/dotnet" -elif [ -d "$COMPONENT/$ISABELLE_PLATFORM64" ]; then - ISABELLE_DOTNET="$COMPONENT/$ISABELLE_PLATFORM64/dotnet" -fi - -DOTNET_CLI_TELEMETRY_OPTOUT="true" -""" - def dotnet_setup( platform_spec: String = default_platform, target_dir: Path = default_target_dir, @@ -91,12 +78,24 @@ target_dir + Path.explode(if (version.isEmpty) "dotnet-latest" else "dotnet-" + version) if (!dry_run) { - val etc_dir = Isabelle_System.make_directory(component_dir + Path.explode("etc")) - val settings_path = etc_dir + Path.explode("settings") - if (!settings_path.is_file) { - progress.echo("Component " + component_dir.expand) - File.write(settings_path, settings) - } + progress.echo("Component " + component_dir.expand) + + val settings_path = component_dir + Path.explode("etc/settings") + Isabelle_System.make_directory(settings_path.dir) + File.write(settings_path, """# -*- shell-script -*- :mode=shellscript: + +ISABELLE_DOTNET_ROOT="$COMPONENT" + +if [ -n "$ISABELLE_WINDOWS_PLATFORM64" -a -d "$ISABELLE_DOTNET_ROOT/$ISABELLE_WINDOWS_PLATFORM64" ]; then + ISABELLE_DOTNET="$ISABELLE_DOTNET_ROOT/$ISABELLE_WINDOWS_PLATFORM64/dotnet.exe" +elif [ -n "$ISABELLE_APPLE_PLATFORM64" -a -d "$ISABELLE_DOTNET_ROOT/$ISABELLE_APPLE_PLATFORM64" ]; then + ISABELLE_DOTNET="$ISABELLE_DOTNET_ROOT/$ISABELLE_APPLE_PLATFORM64/dotnet" +elif [ -d "$ISABELLE_DOTNET_ROOT/$ISABELLE_PLATFORM64" ]; then + ISABELLE_DOTNET="$ISABELLE_DOTNET_ROOT/$ISABELLE_PLATFORM64/dotnet" +fi + +DOTNET_CLI_TELEMETRY_OPTOUT="true" +""") File.write(component_dir + Path.explode("README"), """This installation of Dotnet has been produced via "isabelle dotnet_setup". @@ -105,6 +104,10 @@ Makarius """ + Date.Format.date(Date.now()) + "\n") + for (old <- proper_string(Isabelle_System.getenv("ISABELLE_DOTNET_ROOT"))) { + Components.update_components(false, Path.explode(old)) + } + Components.update_components(true, component_dir) }