Skip to content

Commit

Permalink
Centralize spcial Mac paths in InitializeEnviroment.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
jrbriggs committed Oct 24, 2018
1 parent 69523ef commit 4d03365
Show file tree
Hide file tree
Showing 11 changed files with 69 additions and 77 deletions.
55 changes: 23 additions & 32 deletions Scripts/Mac/BuildGVFSForMac.sh
Original file line number Diff line number Diff line change
@@ -1,57 +1,48 @@
#!/bin/bash

. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

CONFIGURATION=$1
if [ -z $CONFIGURATION ]; then
CONFIGURATION=Debug
fi

SCRIPTDIR="$(dirname ${BASH_SOURCE[0]})"

# convert to an absolute path because it is required by `dotnet publish`
pushd $SCRIPTDIR
SCRIPTDIR="$(pwd)"
popd

SRCDIR=$SCRIPTDIR/../..
ROOTDIR=$SRCDIR/..
BUILDOUTPUT=$ROOTDIR/BuildOutput
PUBLISHDIR=$ROOTDIR/Publish

if [ ! -d $BUILDOUTPUT ]; then
mkdir $BUILDOUTPUT
if [ ! -d $VFS_OUTPUTDIR ]; then
mkdir $VFS_OUTPUTDIR
fi

PACKAGES=$ROOTDIR/packages

# Build the ProjFS kext and libraries
$SRCDIR/ProjFS.Mac/Scripts/Build.sh $CONFIGURATION || exit 1
echo 'Building ProjFS kext and libraries...'
$VFS_SRCDIR/ProjFS.Mac/Scripts/Build.sh $CONFIGURATION || exit 1

# Create the directory where we'll do pre build tasks
BUILDDIR=$BUILDOUTPUT/GVFS.Build
BUILDDIR=$VFS_OUTPUTDIR/GVFS.Build
if [ ! -d $BUILDDIR ]; then
mkdir $BUILDDIR || exit 1
fi

$SCRIPTDIR/DownloadGVFSGit.sh || exit 1
GITVERSION="$($SCRIPTDIR/GetGitVersionNumber.sh)"
GITPATH="$(find $PACKAGES/gitformac.gvfs.installer/$GITVERSION -type f -name *.dmg)" || exit 1
echo 'Downloading a VFS-enabled version of Git...'
$VFS_SCRIPTDIR/DownloadGVFSGit.sh || exit 1
GITVERSION="$($VFS_SCRIPTDIR/GetGitVersionNumber.sh)"
GITPATH="$(find $VFS_PACKAGESDIR/gitformac.gvfs.installer/$GITVERSION -type f -name *.dmg)" || exit 1
echo "Downloaded Git $GITVERSION"
# Now that we have a path containing the version number, generate GVFSConstants.GitVersion.cs
$SCRIPTDIR/GenerateGitVersionConstants.sh "$GITPATH" $BUILDDIR || exit 1
$VFS_SCRIPTDIR/GenerateGitVersionConstants.sh "$GITPATH" $BUILDDIR || exit 1

# If we're building the Profiling(Release) configuration, remove Profiling() for building .NET code
if [ "$CONFIGURATION" == "Profiling(Release)" ]; then
CONFIGURATION=Release
fi

dotnet restore $SRCDIR/GVFS.sln /p:Configuration=$CONFIGURATION.Mac --packages $PACKAGES || exit 1
dotnet build $SRCDIR/GVFS.sln --runtime osx-x64 --framework netcoreapp2.1 --configuration $CONFIGURATION.Mac /maxcpucount:1 || exit 1
dotnet publish $SRCDIR/GVFS.sln /p:Configuration=$CONFIGURATION.Mac /p:Platform=x64 --runtime osx-x64 --framework netcoreapp2.1 --self-contained --output $PUBLISHDIR /maxcpucount:1 || exit 1
echo 'Restoring packages...'
dotnet restore $VFS_SRCDIR/GVFS.sln /p:Configuration=$CONFIGURATION.Mac --packages $VFS_PACKAGESDIR || exit 1
dotnet build $VFS_SRCDIR/GVFS.sln --runtime osx-x64 --framework netcoreapp2.1 --configuration $CONFIGURATION.Mac /maxcpucount:1 || exit 1
dotnet publish $VFS_SRCDIR/GVFS.sln /p:Configuration=$CONFIGURATION.Mac /p:Platform=x64 --runtime osx-x64 --framework netcoreapp2.1 --self-contained --output $VFS_PUBLISHDIR /maxcpucount:1 || exit 1

NATIVEDIR=$SRCDIR/GVFS/GVFS.Native.Mac
xcodebuild -configuration $CONFIGURATION -workspace $NATIVEDIR/GVFS.Native.Mac.xcworkspace build -scheme GVFS.Native.Mac -derivedDataPath $ROOTDIR/BuildOutput/GVFS.Native.Mac || exit 1
NATIVEDIR=$VFS_SRCDIR/GVFS/GVFS.Native.Mac
xcodebuild -configuration $CONFIGURATION -workspace $NATIVEDIR/GVFS.Native.Mac.xcworkspace build -scheme GVFS.Native.Mac -derivedDataPath $VFS_OUTPUTDIR/GVFS.Native.Mac || exit 1

echo 'Copying native binaries to Publish directory'
cp $BUILDOUTPUT/GVFS.Native.Mac/Build/Products/$CONFIGURATION/GVFS.ReadObjectHook $PUBLISHDIR || exit 1
cp $BUILDOUTPUT/GVFS.Native.Mac/Build/Products/$CONFIGURATION/GVFS.VirtualFileSystemHook $PUBLISHDIR || exit 1
echo 'Copying native binaries to Publish directory...'
cp $VFS_OUTPUTDIR/GVFS.Native.Mac/Build/Products/$CONFIGURATION/GVFS.ReadObjectHook $VFS_PUBLISHDIR || exit 1
cp $VFS_OUTPUTDIR/GVFS.Native.Mac/Build/Products/$CONFIGURATION/GVFS.VirtualFileSystemHook $VFS_PUBLISHDIR || exit 1

$PUBLISHDIR/GVFS.UnitTests || exit 1
$VFS_PUBLISHDIR/GVFS.UnitTests || exit 1
6 changes: 3 additions & 3 deletions Scripts/Mac/CleanupFunctionalTests.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})
SRCDIR=$SCRIPTDIR/../..
$SRCDIR/ProjFS.Mac/Scripts/UnloadPrjFSKext.sh
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

$VFS_SRCDIR/ProjFS.Mac/Scripts/UnloadPrjFSKext.sh

sudo rm -r /GVFS.FT

Expand Down
13 changes: 6 additions & 7 deletions Scripts/Mac/DownloadGVFSGit.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
SCRIPTDIR="$(dirname ${BASH_SOURCE[0]})"
SRCDIR=$SCRIPTDIR/../..
BUILDDIR=$SRCDIR/../BuildOutput/GVFS.Build
PACKAGESDIR=$SRCDIR/../packages
GITVERSION="$($SCRIPTDIR/GetGitVersionNumber.sh)"
cp $SRCDIR/nuget.config $BUILDDIR
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

BUILDDIR=$VFS_OUTPUTDIR/GVFS.Build
GITVERSION="$($VFS_SCRIPTDIR/GetGitVersionNumber.sh)"
cp $VFS_SRCDIR/nuget.config $BUILDDIR
dotnet new classlib -n GVFS.Restore -o $BUILDDIR --force
dotnet add $BUILDDIR/GVFS.Restore.csproj package --package-directory $PACKAGESDIR GitForMac.GVFS.Installer --version $GITVERSION
dotnet add $BUILDDIR/GVFS.Restore.csproj package --package-directory $VFS_PACKAGESDIR GitForMac.GVFS.Installer --version $GITVERSION
8 changes: 2 additions & 6 deletions Scripts/Mac/GVFS_Clone.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/bin/bash
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

REPOURL=$1

Expand All @@ -7,9 +8,4 @@ if [ -z $CONFIGURATION ]; then
CONFIGURATION=Debug
fi

SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})

ROOTDIR=$SCRIPTDIR/../../..
PUBLISHDIR=$ROOTDIR/Publish

$PUBLISHDIR/gvfs clone $REPOURL ~/GVFSTest --local-cache-path ~/GVFSTest/.gvfsCache --no-mount --no-prefetch
$VFS_PUBLISHDIR/gvfs clone $REPOURL ~/GVFSTest --local-cache-path ~/GVFSTest/.gvfsCache --no-mount --no-prefetch
9 changes: 3 additions & 6 deletions Scripts/Mac/GVFS_Mount.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#!/bin/bash

. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

CONFIGURATION=$1
if [ -z $CONFIGURATION ]; then
CONFIGURATION=Debug
fi

SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})

ROOTDIR=$SCRIPTDIR/../../..
PUBLISHDIR=$ROOTDIR/Publish

$PUBLISHDIR/gvfs mount ~/GVFSTest
$VFS_PUBLISHDIR/gvfs mount ~/GVFSTest
9 changes: 3 additions & 6 deletions Scripts/Mac/GVFS_Unmount.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#!/bin/bash

. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

CONFIGURATION=$1
if [ -z $CONFIGURATION ]; then
CONFIGURATION=Debug
fi

SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})

ROOTDIR=$SCRIPTDIR/../../..
PUBLISHDIR=$ROOTDIR/Publish

$PUBLISHDIR/gvfs unmount ~/GVFSTest
$VFS_PUBLISHDIR/gvfs unmount ~/GVFSTest
5 changes: 3 additions & 2 deletions Scripts/Mac/GetGitVersionNumber.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
SCRIPTDIR="$(dirname ${BASH_SOURCE[0]})"
GVFSPROPS=$SCRIPTDIR/../../GVFS/GVFS.Build/GVFS.props
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

GVFSPROPS=$VFS_SRCDIR/GVFS/GVFS.Build/GVFS.props
GITVERSION="$(cat $GVFSPROPS | grep GitPackageVersion | grep -Eo '[0-9.]+(-\w+)?')"
echo $GITVERSION
13 changes: 13 additions & 0 deletions Scripts/Mac/InitializeEnvironment.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
SCRIPTDIR="$(dirname ${BASH_SOURCE[0]})"

# convert to an absolute path because it is required by `dotnet publish`
pushd $SCRIPTDIR &>/dev/null
export VFS_SCRIPTDIR="$(pwd)"
popd &>/dev/null

export VFS_SRCDIR=$VFS_SCRIPTDIR/../..

VFS_ENLISTMENTDIR=$VFS_SRCDIR/..
export VFS_OUTPUTDIR=$VFS_ENLISTMENTDIR/BuildOutput
export VFS_PUBLISHDIR=$VFS_ENLISTMENTDIR/Publish
export VFS_PACKAGESDIR=$VFS_ENLISTMENTDIR/packages
15 changes: 6 additions & 9 deletions Scripts/Mac/NukeBuildOutputs.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#!/bin/bash

SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

SRCDIR=$SCRIPTDIR/../..
ROOTDIR=$SRCDIR/..
sudo rm -Rf $VFS_OUTPUTDIR
rm -Rf $VFS_PACKAGESDIR
rm -Rf $VFS_PUBLISHDIR

sudo rm -Rf $ROOTDIR/BuildOutput
rm -Rf $ROOTDIR/packages
rm -Rf $ROOTDIR/Publish

echo git --work-tree=$SRCDIR clean -Xdf -n
git --work-tree=$SRCDIR clean -Xdf -n
echo git --work-tree=$VFS_SRCDIR clean -Xdf -n
git --work-tree=$VFS_SRCDIR clean -Xdf -n
7 changes: 3 additions & 4 deletions Scripts/Mac/PrepFunctionalTests.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
#!/bin/bash

SCRIPTDIR=$(dirname ${BASH_SOURCE[0]})
. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

# Ensure the kext isn't loaded before installing Git
$SCRIPTDIR/../../ProjFS.Mac/Scripts/UnloadPrjFSKext.sh
$VFS_SRCDIR/ProjFS.Mac/Scripts/UnloadPrjFSKext.sh

# Install GVFS-aware Git (that was downloaded by the build script)
GITVERSION="$($SCRIPTDIR/GetGitVersionNumber.sh)"
ROOTDIR=$SCRIPTDIR/../../..
GITDIR=$ROOTDIR/packages/gitformac.gvfs.installer/$GITVERSION/tools
GITDIR=$VFS_PACKAGESDIR/gitformac.gvfs.installer/$GITVERSION/tools
if [[ ! -d $GITDIR ]]; then
echo "GVFS-aware Git package not found. Run BuildGVFSForMac.sh and try again"
exit 1
Expand Down
6 changes: 4 additions & 2 deletions Scripts/Mac/RunFunctionalTests.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

. "$(dirname ${BASH_SOURCE[0]})/InitializeEnvironment.sh"

CONFIGURATION=$1
if [ -z $CONFIGURATION ]; then
CONFIGURATION=Debug
Expand All @@ -14,5 +16,5 @@ PUBLISHDIR=$ROOTDIR/Publish
sudo mkdir /GVFS.FT
sudo chown $USER /GVFS.FT

$SRCDIR/ProjFS.Mac/Scripts/LoadPrjFSKext.sh
$PUBLISHDIR/GVFS.FunctionalTests --full-suite $2
$VFS_SRCDIR/ProjFS.Mac/Scripts/LoadPrjFSKext.sh
$VFS_PUBLISHDIR/GVFS.FunctionalTests --full-suite $2

0 comments on commit 4d03365

Please sign in to comment.