From e1c0d950e08b138c636f2615b6fbd494f4334856 Mon Sep 17 00:00:00 2001 From: fwastring Date: Wed, 18 Feb 2026 13:14:45 +0100 Subject: [PATCH] more --- default.nix | 14 ++++++++- flake.nix | 82 +++++++++++++++++++++++++++++++---------------------- 2 files changed, 61 insertions(+), 35 deletions(-) diff --git a/default.nix b/default.nix index 7e96d7e..7b4e3cd 100644 --- a/default.nix +++ b/default.nix @@ -6,24 +6,28 @@ let url = "https://www.powershellgallery.com/api/v2/package/PSReadLine/2.4.5"; sha256 = "12pwy5b426lv7cmlasa7ajy202a0vjjs9drfyg2q5zwqxhj8g8cz"; stripRoot = false; + extension = "zip"; }; psscriptanalyzer = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/PSScriptAnalyzer/1.24.0"; sha256 = "03bz9f5rcx749758h6l9wsv86300s0a34qgd522v6166crbpvg2p"; stripRoot = false; + extension = "zip"; }; invokebuild = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/InvokeBuild/5.12.2"; sha256 = "0cry70c6ndlv4y0fmlg5iip0ix1r51p7i6dxx3y2zzczbkz2mn6m"; stripRoot = false; + extension = "zip"; }; platyps = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/platyPS/0.14.2"; sha256 = "13m11mf42blcn2327m9a4dqfg8sgjjg1vg9dmiwvnbq7wpam260q"; stripRoot = false; + extension = "zip"; }; in pkgs.stdenv.mkDerivation { @@ -31,6 +35,13 @@ pkgs.stdenv.mkDerivation { version = "4.4.0"; src = ./.; + phases = [ + "unpackPhase" + "patchPhase" + "buildPhase" + "installPhase" + ]; + nativeBuildInputs = [ pkgs.dotnet-sdk_8 pkgs.git @@ -41,6 +52,7 @@ pkgs.stdenv.mkDerivation { export HOME=$TMPDIR export DOTNET_CLI_TELEMETRY_OPTOUT=1 export NUGET_PACKAGES=$TMPDIR/nuget + export NUGET_CONFIG_FILE=$PWD/nuget.config git init -q git config user.email "nix@local" @@ -58,7 +70,7 @@ pkgs.stdenv.mkDerivation { export PSModulePath="$TMPDIR/psmodules${"PSModulePath:+:$PSModulePath"}" pwsh -NoLogo -NoProfile -Command \ - "Import-Module InvokeBuild; Invoke-Build -File PowerShellEditorServices.build.ps1 -Task AssembleModule -Configuration Release" + "Import-Module InvokeBuild; Invoke-Build -File PowerShellEditorServices.build.ps1 -Task Build,AssembleModule -Configuration Release" ''; installPhase = '' diff --git a/flake.nix b/flake.nix index 3e9ddc9..1a5ffd5 100644 --- a/flake.nix +++ b/flake.nix @@ -13,68 +13,82 @@ url = "https://www.powershellgallery.com/api/v2/package/PSReadLine/2.4.5"; sha256 = "12pwy5b426lv7cmlasa7ajy202a0vjjs9drfyg2q5zwqxhj8g8cz"; stripRoot = false; + extension = "zip"; }; psscriptanalyzer = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/PSScriptAnalyzer/1.24.0"; sha256 = "03bz9f5rcx749758h6l9wsv86300s0a34qgd522v6166crbpvg2p"; stripRoot = false; + extension = "zip"; }; invokebuild = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/InvokeBuild/5.12.2"; sha256 = "0cry70c6ndlv4y0fmlg5iip0ix1r51p7i6dxx3y2zzczbkz2mn6m"; stripRoot = false; + extension = "zip"; }; platyps = pkgs.fetchzip { url = "https://www.powershellgallery.com/api/v2/package/platyPS/0.14.2"; sha256 = "13m11mf42blcn2327m9a4dqfg8sgjjg1vg9dmiwvnbq7wpam260q"; stripRoot = false; + extension = "zip"; }; in { - packages.${system}.pses = pkgs.stdenv.mkDerivation { - pname = "powershell-editor-services"; - version = "4.4.0"; - src = ./.; + packages.${system} = rec { + pses = pkgs.stdenv.mkDerivation { + pname = "powershell-editor-services"; + version = "4.4.0"; + src = ./.; - nativeBuildInputs = [ - pkgs.dotnet-sdk_8 - pkgs.git - pkgs.powershell - ]; + phases = [ + "unpackPhase" + "patchPhase" + "buildPhase" + "installPhase" + ]; - buildPhase = '' - export HOME=$TMPDIR - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - export NUGET_PACKAGES=$TMPDIR/nuget + nativeBuildInputs = [ + pkgs.dotnet-sdk_8 + pkgs.git + pkgs.powershell + ]; - git init -q - git config user.email "nix@local" - git config user.name "nix" - git add -A - git commit -qm "nix build" + buildPhase = '' + export HOME=$TMPDIR + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + export NUGET_PACKAGES=$TMPDIR/nuget + export NUGET_CONFIG_FILE=$PWD/nuget.config - mkdir -p module - cp -r ${psreadline} module/PSReadLine - cp -r ${psscriptanalyzer} module/PSScriptAnalyzer + git init -q + git config user.email "nix@local" + git config user.name "nix" + git add -A + git commit -qm "nix build" - mkdir -p $TMPDIR/psmodules - cp -r ${invokebuild} $TMPDIR/psmodules/InvokeBuild - cp -r ${platyps} $TMPDIR/psmodules/platyPS - export PSModulePath="$TMPDIR/psmodules${"PSModulePath:+:$PSModulePath"}" + mkdir -p module + cp -r ${psreadline} module/PSReadLine + cp -r ${psscriptanalyzer} module/PSScriptAnalyzer - pwsh -NoLogo -NoProfile -Command \ - "Import-Module InvokeBuild; Invoke-Build -File PowerShellEditorServices.build.ps1 -Task AssembleModule -Configuration Release" - ''; + mkdir -p $TMPDIR/psmodules + cp -r ${invokebuild} $TMPDIR/psmodules/InvokeBuild + cp -r ${platyps} $TMPDIR/psmodules/platyPS + export PSModulePath="$TMPDIR/psmodules''${PSModulePath:+:$PSModulePath}" - installPhase = '' - mkdir -p $out/share/powershell/Modules - cp -r module/* $out/share/powershell/Modules/ - ''; + pwsh -NoLogo -NoProfile -Command \ + "Import-Module InvokeBuild; Invoke-Build -File PowerShellEditorServices.build.ps1 -Task Build,AssembleModule -Configuration Release" + ''; + + installPhase = '' + mkdir -p $out/share/powershell/Modules + cp -r module/* $out/share/powershell/Modules/ + ''; + }; + + default = pses; }; - - packages.${system}.default = self.packages.${system}.pses; }; }