94 lines
2.8 KiB
Nix
94 lines
2.8 KiB
Nix
{
|
|
description = "PowerShellEditorServices (PSES)";
|
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
outputs =
|
|
{ self, nixpkgs }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs { inherit system; };
|
|
|
|
psreadline = pkgs.fetchzip {
|
|
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} = rec {
|
|
pses = pkgs.stdenv.mkDerivation {
|
|
pname = "powershell-editor-services";
|
|
version = "4.4.0";
|
|
src = ./.;
|
|
|
|
phases = [
|
|
"unpackPhase"
|
|
"patchPhase"
|
|
"buildPhase"
|
|
"installPhase"
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
pkgs.dotnet-sdk_8
|
|
pkgs.git
|
|
pkgs.powershell
|
|
];
|
|
|
|
buildPhase = ''
|
|
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"
|
|
git config user.name "nix"
|
|
git add -A
|
|
git commit -qm "nix build"
|
|
|
|
mkdir -p module
|
|
cp -r ${psreadline} module/PSReadLine
|
|
cp -r ${psscriptanalyzer} module/PSScriptAnalyzer
|
|
|
|
mkdir -p $TMPDIR/psmodules
|
|
cp -r ${invokebuild} $TMPDIR/psmodules/InvokeBuild
|
|
cp -r ${platyps} $TMPDIR/psmodules/platyPS
|
|
export PSModulePath="$TMPDIR/psmodules''${PSModulePath:+:$PSModulePath}"
|
|
|
|
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;
|
|
};
|
|
};
|
|
}
|