PowerShell/build.sh
Andrew Schwartzmeyer af1343472d Fix up Get-OmiInstance build and tests
Deploying module is a bit funky until dotnet-cli gives us more control
over which libraries to build and where. Theoretically we'll be able to
package System.Management.Automation and depend on the package instead,
so Commands.Omi can be its own project entirely.

Cleaned up the Commands.Omi project.json as it had some unnecessary
cruft from where it was copied. Also removed the AssemblyInfo as it does
not matter for a new module.

Moved the Get-OmiInstance Pester test to the project's test folder so it
doesn't run with our suite of tests (as it takes a dependency on OMI).
2015-12-23 12:29:08 -08:00

61 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
export BIN=$(pwd)/bin
mkdir -p $BIN/Modules
# Deploy PowerShell modules
(
cd $BIN/Modules
ln -sf ../../ext-src/pester Pester
ln -sf ../../src/monad/monad/miscfiles/modules/Microsoft.PowerShell.Utility .
OMI=Microsoft.PowerShell.Commands.Omi
mkdir -p $OMI
ln -sf $BIN/$OMI.dll $OMI/
)
# Build native components
(
cd src/monad-native
cmake -DCMAKE_BUILD_TYPE=Debug .
make -j
ctest -V
# Deploy development copy of libpsnative
cp native/libpsnative.so $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 --runtime ubuntu.14.04-x64 --output $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 .
)