more
Some checks are pending
CI Tests / dotnet (push) Waiting to run
CI Tests / dotnet-1 (push) Waiting to run
CI Tests / dotnet-2 (push) Waiting to run
Emacs End-to-End Tests / ert (push) Waiting to run
Vim End-to-End Tests / themis (push) Waiting to run

This commit is contained in:
fwastring 2026-02-18 13:14:45 +01:00
parent baa0056244
commit e1c0d950e0
2 changed files with 61 additions and 35 deletions

View file

@ -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 = ''

View file

@ -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;
};
}