Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions setup-vm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/bash
# Useful for setting up a fresh WSL VM as if it is Docker
# (if Docker is busted on a student's machine)

set -e -o pipefail

export GBA=
export INST_SCRIPTS_DIRNAME=/tmp/cs2110
export INST_SCRIPTS=$INST_SCRIPTS_DIRNAME/install
export DEBIAN_FRONTEND=noninteractive

SUDO_CMD=( sudo --preserve-env=INST_SCRIPTS,DEBIAN_FRONTEND )

mkdir -p "$INST_SCRIPTS_DIRNAME"

### Add all install scripts for further steps
cp -r ./src/install/ "$INST_SCRIPTS/"
find "$INST_SCRIPTS" -name '*.sh' -exec chmod a+x {} +

# Don't need this because VMs will not disable installing manpages
### Apply any necessary patches during pre-installation
#"${SUDO_CMD[@]}" "$INST_SCRIPTS/patches/apply_preinstall_patches.sh"

### Install some common tools and applications
"${SUDO_CMD[@]}" "$INST_SCRIPTS/base/tools.sh"
export LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'

### Install man pages
"${SUDO_CMD[@]}" "$INST_SCRIPTS/base/man_pages.sh"

### Install LC3 autograder
"${SUDO_CMD[@]}" "$INST_SCRIPTS/tools/lc3Tools.sh"

### Install gcc/gdb, mGBA (optional), and Criterion
"${SUDO_CMD[@]}" "$INST_SCRIPTS/tools/cTools.sh"
if [ -n "$GBA" ]; then "${SUDO_CMD[@]}" "$INST_SCRIPTS/tools/gba.sh"; fi

# Not necessary post-build
rm -rf "$INST_SCRIPTS_DIRNAME"