52a7095056
Proper deployment of the Modules we support allowed me to remove my work-arounds using the deprecated SnapIn system to load all PowerShell libraries via Modules. I still don't like that this is done in build scripts, but we need better asset support from .NET CLI to change how this is done. PowerShell.Utility now deploys the CoreClr manifest, so unsupported commands don't show up erroneously.
65 lines
2.3 KiB
Bash
Executable file
65 lines
2.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
export BIN=$(pwd)/bin
|
|
|
|
mkdir -p $BIN/Modules
|
|
|
|
# Deploy PowerShell modules
|
|
(
|
|
cd $BIN/Modules
|
|
cp -r ../../test/Pester .
|
|
cp -r ../../src/monad/monad/miscfiles/modules/Microsoft.PowerShell.Utility .
|
|
cp ../../src/monad/monad/miscfiles/modules/Microsoft.PowerShell.Utility/CoreClr/* Microsoft.PowerShell.Utility
|
|
cp -r ../../src/monad/monad/miscfiles/modules/Microsoft.PowerShell.Security .
|
|
cp -r ../../src/monad/monad/miscfiles/modules/Microsoft.PowerShell.Management .
|
|
cp -r ../../src/monad/monad/miscfiles/modules/PSDiagnostics .
|
|
OMI=Microsoft.PowerShell.Commands.Omi
|
|
mkdir -p $OMI
|
|
ln -sf $BIN/$OMI.dll $OMI/
|
|
)
|
|
|
|
# Build native components
|
|
(
|
|
cd src/libpsl-native
|
|
cmake -DCMAKE_BUILD_TYPE=Debug .
|
|
make -j
|
|
ctest -V
|
|
cp src/libpsl-native.* $BIN
|
|
)
|
|
|
|
# Build registry stub (this should go away, again)
|
|
(
|
|
cd src/registry-stub
|
|
make
|
|
cp api-ms-win-core-registry-l1-1-0.dll $BIN
|
|
)
|
|
|
|
# Publish PowerShell
|
|
(
|
|
cd src/Microsoft.PowerShell.Linux.Host
|
|
dotnet publish --framework dnxcore50 --output $BIN
|
|
# Temporary fix for dotnet publish
|
|
[[ -d $BIN/Debug/dnxcore50 ]] && cp $BIN/Debug/dnxcore50/* $BIN
|
|
# Copy files that dotnet-publish does not currently deploy
|
|
cp *_profile.ps1 $BIN
|
|
)
|
|
|
|
# Symlink types and format files to correct names
|
|
(
|
|
cd $BIN
|
|
|
|
ln -sf ../src/monad/monad/miscfiles/types/CoreClr/types.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/types/CoreClr/typesv3.ps1xml .
|
|
|
|
ln -sf ../src/monad/monad/miscfiles/display/Certificate.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/Diagnostics.Format.ps1xml Diagnostics.format.ps1xml
|
|
ln -sf ../src/monad/monad/miscfiles/display/DotNetTypes.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/Event.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/FileSystem.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/Help.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/HelpV3.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/PowerShellCore.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/PowerShellTrace.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/Registry.format.ps1xml .
|
|
ln -sf ../src/monad/monad/miscfiles/display/WSMan.format.ps1xml .
|
|
)
|