Install yarn. Fix encoding. Fix entrypoint and sudo. Fix Xcode select. Make act optional and fix nohup in run.sh.
This commit is contained in:
@@ -32,10 +32,13 @@ echo Installing Homebrew ...
|
||||
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh|ssh 127.0.0.1 bash
|
||||
# (gmp is a hack for ruby)
|
||||
echo Installing packages ...
|
||||
echo /usr/local/bin/brew install node@20 libyaml gmp mas|ssh 127.0.0.1 bash
|
||||
echo /usr/local/bin/brew install node@20 yarn libyaml gmp mas|ssh 127.0.0.1 bash
|
||||
echo /usr/local/bin/brew link node@20|ssh 127.0.0.1 bash
|
||||
# Create base directories for act and drone
|
||||
echo mkdir /Users/mac/drone|ssh 127.0.0.1 bash
|
||||
echo -e "drone\tUsers/mac/drone" | ssh 127.0.0.1 'sudo tee "/etc/synthetic.conf"'
|
||||
# Fix problems with encoding (https://stackoverflow.com/questions/68809929/unicode-normalization-not-appropriate-for-ascii-8bit)
|
||||
echo export LC_ALL=en_US.UTF-8 | ssh 127.0.0.1 'tee ~/.zshrc'
|
||||
# Redirect all commands to VM
|
||||
echo Redirecting executables
|
||||
sed -i -r 's:^\#\!/bin/bash$:\#\!/usr.orig/bin/bash:' /home/arch/OSX-KVM/Launch-nopicker.sh
|
||||
@@ -56,6 +59,10 @@ ln -s /home/arch/OSX-KVM/run.sh bash && docker cp bash ${cntName}:/bin/
|
||||
ln -s /home/arch/OSX-KVM/run.sh uname && docker cp uname ${cntName}:/usr/bin/
|
||||
ln -s /home/arch/OSX-KVM/run.sh node && docker cp node ${cntName}:/usr/local/bin/
|
||||
ln -s /home/arch/OSX-KVM/run.sh brew && docker cp brew ${cntName}:/usr/local/bin/
|
||||
# Fix our container entrypoint
|
||||
ln -s /usr.orig/bin/tail tail && docker cp tail osx-builder:/usr/bin
|
||||
# Allow sudo to work
|
||||
ln -s /usr.orig/bin/unix_chkpwd unix_chkpwd && docker cp unix_chkpwd osx-builder:/usr/bin
|
||||
cd /tmp
|
||||
rm -rf /tmp/links_
|
||||
|
||||
@@ -65,3 +72,4 @@ read -p "Press any key to when done.. " -n1 -s
|
||||
## Install apps from Mac App Store (497799835 - Xcode)
|
||||
echo Installing apps from Mac App Store
|
||||
docker exec -i $cntName /usr.orig/bin/ssh 127.0.0.1 '/usr/local/bin/mas install 497799835'
|
||||
docker exec -i $cntName /usr.orig/bin/ssh 127.0.0.1 'sudo xcode-select -s /Applications/Xcode.app/Contents/Developer'
|
||||
23
run.sh
23
run.sh
@@ -1,15 +1,24 @@
|
||||
#!/usr.orig/bin/sh
|
||||
export PATH=$PATH:/usr.orig/bin
|
||||
if ! ps -aux|grep -q [^\[]qemu[-]system; then
|
||||
export EXTRA="$EXTRA -virtfs local,path=/var/run/act,mount_tag=act,security_model=passthrough,id=act -virtfs local,path=/drone/src,mount_tag=src,security_model=passthrough,id=src"
|
||||
(nohup sudo env "RAM=$RAM" "CPU=$CPU" "CPUID_FLAGS=$CPUID_FLAGS" "BOOT_ARGS=$BOOT_ARGS" "KVM=$KVM" "CPU_STRING=$CPU_STRING" "SMP=$SMP" "CORES=$CORES" "BOOTDISK=$BOOTDISK" "IMAGE_PATH=$IMAGE_PATH" "IMAGE_FORMAT=$IMAGE_FORMAT" "INTERNAL_SSH_PORT=$INTERNAL_SSH_PORT" "SCREEN_SHARE_PORT=$SCREEN_SHARE_PORT" "ADDITIONAL_PORTS=$ADDITIONAL_PORTS" "NETWORKING=$NETWORKING" "MAC_ADDRESS=$MAC_ADDRESS" "EXTRA=$EXTRA" /home/arch/OSX-KVM/Launch-nopicker.sh 2>&1 &) > /dev/null \
|
||||
; until [[ "$(ssh 127.0.0.1 'echo a' 2> /dev/null)" ]]; do \
|
||||
if [ -d "/var/run/act" ]; then
|
||||
export EXTRA="$EXTRA -virtfs local,path=/var/run/act,mount_tag=act,security_model=passthrough,id=act"
|
||||
fi
|
||||
if [ -d "/drone/src" ]; then
|
||||
export EXTRA="$EXTRA -virtfs local,path=/drone/src,mount_tag=src,security_model=passthrough,id=src"
|
||||
fi
|
||||
echo nohup env '"RAM='$RAM'" "CPU='$CPU'" "CPUID_FLAGS='$CPUID_FLAGS'" "BOOT_ARGS='$BOOT_ARGS'" "KVM='$KVM'" "CPU_STRING='$CPU_STRING'" "SMP='$SMP'" "CORES='$CORES'" "BOOTDISK='$BOOTDISK'" "IMAGE_PATH='$IMAGE_PATH'" "IMAGE_FORMAT='$IMAGE_FORMAT'" "INTERNAL_SSH_PORT='$INTERNAL_SSH_PORT'" "SCREEN_SHARE_PORT='$SCREEN_SHARE_PORT'" "ADDITIONAL_PORTS='$ADDITIONAL_PORTS'" "NETWORKING='$NETWORKING'" "MAC_ADDRESS='$MAC_ADDRESS'" "EXTRA='$EXTRA'" /home/arch/OSX-KVM/Launch-nopicker.sh 2>&1 > /dev/null &'| sudo sh
|
||||
until [[ "$(ssh 127.0.0.1 'echo a' 2> /dev/null)" ]]; do \
|
||||
sleep 15 \
|
||||
; done
|
||||
ssh 127.0.0.1 'sudo mount_9p act'
|
||||
ssh 127.0.0.1 'sudo mount_9p src'
|
||||
ssh 127.0.0.1 'sudo ln -s /Volumes/act /var/run/act'
|
||||
ssh 127.0.0.1 'sudo ln -s /Volumes/src /drone/src'
|
||||
if [ -d "/var/run/act" ]; then
|
||||
ssh 127.0.0.1 'sudo mount_9p act'
|
||||
ssh 127.0.0.1 'sudo ln -s /Volumes/act /var/run/act'
|
||||
fi
|
||||
if [ -d "/drone/src" ]; then
|
||||
ssh 127.0.0.1 'sudo mount_9p src'
|
||||
ssh 127.0.0.1 'sudo ln -s /Volumes/src /drone/src'
|
||||
fi
|
||||
fi
|
||||
|
||||
cat /proc/self/environ|ssh 127.0.0.1 'vars=(); while read -rd '"''"' keyVal; do; key=${keyVal%=*}; val=${keyVal#*=}; if [[ "$keyVal" == "GITHUB_WORKSPACE=/drone/src" ]]; then keyVal="GITHUB_WORKSPACE=/Volumes/src"; fi; if (( ! ${(P)+key} )); then vars+=("$keyVal"); elif [[ "$key" == "PATH" ]]; then vars+=("PATH=$val:$PATH"); fi; done; pwd="'"$PWD"'"; if [ -d "$pwd" ] ; then cd "$pwd"; fi; sudo -E env -i "${vars[@]}" '"$0"' '"$@"
|
||||
Reference in New Issue
Block a user