58 lines
1.7 KiB
Bash
Executable file
58 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
SOURCE="$(readlink "$SOURCE")"
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
done
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
|
|
source "$DIR/_common.sh"
|
|
|
|
REPOROOT="$( cd -P "$DIR/.." && pwd )"
|
|
|
|
if [ -z "$DOTNET_BUILD_VERSION" ]; then
|
|
TIMESTAMP=$(date "+%Y%m%d%H%M%S")
|
|
DOTNET_BUILD_VERSION=0.0.1-alpha-t$TIMESTAMP
|
|
fi
|
|
|
|
STAGE2_DIR=$REPOROOT/artifacts/$RID/stage2
|
|
|
|
if [ ! -d "$STAGE2_DIR" ]; then
|
|
error "missing stage2 output in $STAGE2_DIR" 1>&2
|
|
exit
|
|
fi
|
|
|
|
PACKAGE_DIR=$REPOROOT/artifacts/packages/dnvm
|
|
[ -d "$PACKAGE_DIR" ] || mkdir -p $PACKAGE_DIR
|
|
|
|
PACKAGE_SHORT_NAME=dotnet-${OSNAME}-x64.${DOTNET_BUILD_VERSION}
|
|
PACKAGE_NAME=$PACKAGE_DIR/${PACKAGE_SHORT_NAME}.tar.gz
|
|
|
|
cd $STAGE2_DIR
|
|
|
|
# Correct all the mode flags
|
|
banner "Packaging $PACKAGE_SHORT_NAME"
|
|
|
|
# Managed code doesn't need 'x'
|
|
find . -type f -name "*.dll" | xargs chmod 644
|
|
find . -type f -name "*.exe" | xargs chmod 644
|
|
|
|
# Generally, dylibs and sos have 'x' (no idea if it's required ;))
|
|
if [ "$OSNAME" == "osx" ]; then
|
|
find . -type f -name "*.dylib" | xargs chmod 744
|
|
else
|
|
find . -type f -name "*.so" | xargs chmod 744
|
|
fi
|
|
|
|
# Executables (those without dots) are executable :)
|
|
find . -type f ! -name "*.*" | xargs chmod 755
|
|
|
|
# Tar up the stage2 artifacts
|
|
# We need both "*" and ".version" to ensure we pick up that file
|
|
tar -czf $PACKAGE_NAME * .version
|
|
|
|
info "Packaged stage2 to $PACKAGE_NAME"
|
|
|
|
$DIR/publish.sh $PACKAGE_NAME
|