From f7a8eae6bf9d1d8694a76f43b979631d4d81e149 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Sat, 11 May 2019 20:32:03 -0600 Subject: [PATCH] Support passing a path to a file to run, parse exit status differently --- redoxer.sh | 19 ++++++++++++++++--- src/bin/redoxerd.rs | 3 +-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/redoxer.sh b/redoxer.sh index 3b00c98..9de24a9 100755 --- a/redoxer.sh +++ b/redoxer.sh @@ -90,8 +90,6 @@ function redoxfs_mount { done } -name="$(basename "$1")" - if [ ! -f build/bootloader.bin ] then echo "building bootloader" >&2 @@ -139,13 +137,25 @@ mkdir -p "build/${uuid}" redoxfs_mount "build/${uuid}.bin" "build/${uuid}" cp "target/${TARGET}/release/redoxerd" "build/${uuid}/bin/redoxerd" + +if [[ "$1" == */* ]] +then + name="$(basename "$1")" + cp "$1" "build/${uuid}/bin/${name}" + echo "${name}" >> "build/${uuid}/etc/redoxerd" + shift +fi + for arg in "$@" do echo "${arg}" >> "build/${uuid}/etc/redoxerd" done + redoxfs_unmount "build/${uuid}" +set +e + qemu-system-x86_64 \ -enable-kvm \ -cpu host \ @@ -161,7 +171,10 @@ qemu-system-x86_64 \ -nographic \ -vga none \ -drive file="build/${uuid}.bin",format=raw +status="$(("$?" / 2))" echo -echo "## redoxer $@ ##" +echo "## redoxer (${status}) ##" cat "build/${uuid}.log" + +exit "${status}" diff --git a/src/bin/redoxerd.rs b/src/bin/redoxerd.rs index 95f557e..9acab03 100644 --- a/src/bin/redoxerd.rs +++ b/src/bin/redoxerd.rs @@ -147,8 +147,7 @@ pub fn main() { Err(err) => { eprintln!("redoxerd: {}", err); // Exit with error using qemu device - let status = 0x21; - Pio::<u8>::new(0x501).write(status >> 1); + Pio::<u8>::new(0x501).write(1); } } } -- GitLab