50 lines
1.6 KiB
Bash
Executable File
50 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -eo pipefail
|
||
|
||
mode="$1"
|
||
|
||
outdir="bin/publish"
|
||
args_selfcontained="
|
||
--self-contained
|
||
--use-current-runtime
|
||
-p:PublishSingleFile=true
|
||
-p:PublishTrimmed=true
|
||
-p:TrimMode=partial
|
||
-p:EnableCompressionInSingleFile=true
|
||
-p:OptimizationPreference=Size
|
||
-p:InvariantGlobalization=true
|
||
-p:DebugType=none
|
||
-p:IncludeNativeLibrariesForSelfExtract=true"
|
||
|
||
args_aot="
|
||
-p:PublishAot=true
|
||
-p:OptimizationPreference=Size
|
||
-p:DebugType=none"
|
||
|
||
case "$mode" in
|
||
aot | native | бинарное)
|
||
args="$args_aot"
|
||
;;
|
||
self-contained | selfcontained | небинарное)
|
||
args="$args_selfcontained"
|
||
;;
|
||
*)
|
||
echo "ПОЛЬЗОВАНИЕ: ./build.sh [способ]"
|
||
echo " СПОСОБЫ:"
|
||
echo " aot, native, бинарное - компилирует промежуточный (управляемый) код в машинный вместе с рантаймом"
|
||
echo " self-contained, selfcontained, небинарное - приделывает промежуточный (управляемый) код к рантайму"
|
||
echo " Оба способа собирают программу в один файл, который не является 80-мегабайтовым умственно отсталым кубом.\
|
||
Он 20-мегабайтовый >w<"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
rm -rf "$outdir"
|
||
# when internet breaks again add --source /mnt/c/Users/User/.nuget/packages/
|
||
command="dotnet publish -c Release -o $outdir $args"
|
||
echo "$command"
|
||
$command
|
||
|
||
find "$outdir" -name '*.pdb' -delete -printf "deleted '%p'\n"
|
||
tree -sh "$outdir"
|