Minor bootstrap.sh changes

This commit is contained in:
Austen Adler 2015-01-13 22:31:50 -05:00
parent fe01f82d27
commit fc2b792ae0

View File

@ -1,12 +1,20 @@
#!/bin/bash #!/bin/bash
# If the script was not run as root
if [ "$(id -u)" != "0" ]; then
echo "Switching to root..."
sudo /vagrant/bootstrap.sh
exit
fi
# Download wpilib from github if the folder doesn't already exist # Download wpilib from github if the folder doesn't already exist
(test -d /vagrant/wpilib||(mkdir /vagrant/wpilib;curl -sL https://github.com/stonewareslord/wpilib/tarball/master | tar -xzC /vagrant/wpilib --strip-components=1))& (test -d /vagrant/wpilib||(mkdir /vagrant/wpilib;curl -sL https://github.com/stonewareslord/wpilib/tarball/master | tar -xzC /vagrant/wpilib --strip-components=1))&
# Create the build folder if it doesn't already exist # Create the build folder if it doesn't already exist
mkdir -p /vagrant/build /vagrant/src mkdir -p /vagrant/build /vagrant/src
# Install the frc toolchain # Install the frc toolchain if it isn't installed already
add-apt-repository -y ppa:byteit101/frc-toolchain dpkg -s frc-toolchain 2>&1 >/dev/null || {
apt-get update add-apt-repository -y ppa:byteit101/frc-toolchain
apt-get install -y frc-toolchain apt-get update
apt-get install -y frc-toolchain
}
# Compiles code in the /vagrant/src folder # Compiles code in the /vagrant/src folder
echo "echo 'Starting build';(test -d /vagrant/src/Debug&&test -f /vagrant/src/Debug/makefile&&(cd /vagrant/src/Debug/&&make -f makefile clean;make -f makefile;cd -))||(test -f /vagrant/build/FRCUserProgram&&rm /vagrant/build/FRCUserProgram;test -f \`cat /vagrant/config/buildfile|head -n 1\`&&(arm-frc-linux-gnueabi-g++ -std=c++1y -I/vagrant/wpilib/include '-I/vagrant/src' -O0 -g3 -Wall -c -fmessage-length=0 -o /vagrant/build/Robot.o /vagrant/src/\`cat /vagrant/config/buildfile|head -n 1\`&&arm-frc-linux-gnueabi-g++ -L/vagrant/wpilib/lib -Wl,-rpath,/opt/GenICam_v2_3/bin/Linux_armv7-a -o /vagrant/build/FRCUserProgram /vagrant/build/Robot.o -lwpi;rm /vagrant/build/Robot.o))||(/vagrant/compile.sh);echo 'Done'" > /usr/local/bin/build echo "echo 'Starting build';(test -d /vagrant/src/Debug&&test -f /vagrant/src/Debug/makefile&&(cd /vagrant/src/Debug/&&make -f makefile clean;make -f makefile;cd -))||(test -f /vagrant/build/FRCUserProgram&&rm /vagrant/build/FRCUserProgram;test -f \`cat /vagrant/config/buildfile|head -n 1\`&&(arm-frc-linux-gnueabi-g++ -std=c++1y -I/vagrant/wpilib/include '-I/vagrant/src' -O0 -g3 -Wall -c -fmessage-length=0 -o /vagrant/build/Robot.o /vagrant/src/\`cat /vagrant/config/buildfile|head -n 1\`&&arm-frc-linux-gnueabi-g++ -L/vagrant/wpilib/lib -Wl,-rpath,/opt/GenICam_v2_3/bin/Linux_armv7-a -o /vagrant/build/FRCUserProgram /vagrant/build/Robot.o -lwpi;rm /vagrant/build/Robot.o))||(/vagrant/compile.sh);echo 'Done'" > /usr/local/bin/build
# Uploads the code to the rRIO based on /vagrant/config/host file # Uploads the code to the rRIO based on /vagrant/config/host file
@ -14,4 +22,8 @@ echo "cat /vagrant/build/FRCUserProgram | ssh \`cat /vagrant/config/host|head -n
# Creates ssh key if it doesn't exist and cats the public key to the rRIO # Creates ssh key if it doesn't exist and cats the public key to the rRIO
echo "test -d ~/.ssh||mkdir ~/.ssh;test -f ~/.ssh/id_rsa||ssh-keygen -t rsa -f ~/.ssh/id_rsa -b 4096 -q -N '';cat ~/.ssh/id_rsa.pub|ssh \`cat /vagrant/config/host|head -n 1\` 'cat >> /tmp/key;mkdir -p ~/.ssh;cat /tmp/key >> ~/.ssh/authorized_keys;rm /tmp/key'" > /usr/local/bin/putkey echo "test -d ~/.ssh||mkdir ~/.ssh;test -f ~/.ssh/id_rsa||ssh-keygen -t rsa -f ~/.ssh/id_rsa -b 4096 -q -N '';cat ~/.ssh/id_rsa.pub|ssh \`cat /vagrant/config/host|head -n 1\` 'cat >> /tmp/key;mkdir -p ~/.ssh;cat /tmp/key >> ~/.ssh/authorized_keys;rm /tmp/key'" > /usr/local/bin/putkey
chmod +x /usr/local/bin/build /usr/local/bin/deploy /usr/local/bin/putkey chmod +x /usr/local/bin/build /usr/local/bin/deploy /usr/local/bin/putkey
echo "Done provisioning. Run vagrant ssh to connect to the virtual machine." echo "Done provisioning. "
# If provisioned from Vagrant
if [ $(cd "$(dirname "$0")"; pwd) != "/vagrant" ]; then
echo "Run 'vagrant ssh' to connect to the virtual machine"
fi