diff --git a/.gitignore b/.gitignore index ba077a4..b0ce59b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -bin +bin/* +!bin/.keep +qemu/qcow2/* +!qemu/qcow2/.keep diff --git a/appvm.sh b/appvm.sh new file mode 100755 index 0000000..bbd02c8 --- /dev/null +++ b/appvm.sh @@ -0,0 +1,12 @@ +#!/bin/bash +if [[ "$1" == "build" && "$2" != "" ]]; then + NIX_PATH=$NIX_PATH:. nix-build '' -A config.system.build.vm -I nixos-config=nix/${2}.nix || exit 1 + NIX_SYSTEM=$(realpath result/system) + mkdir -p bin + sed "s;NIX_SYSTEM_PLACEHOLDER;${NIX_SYSTEM};" qemu/qemu.template > bin/appvm.${2} + sed -i "s;NAME_PLACEHOLDER;${2};" bin/appvm.${2} + chmod +x bin/appvm.${2} + unlink result +else + echo "Usage: $0 build APPLICATION" +fi diff --git a/base.nix b/nix/base.nix similarity index 100% rename from base.nix rename to nix/base.nix diff --git a/tdesktop.nix b/nix/tdesktop.nix similarity index 93% rename from tdesktop.nix rename to nix/tdesktop.nix index 925708e..f4ce4d6 100644 --- a/tdesktop.nix +++ b/nix/tdesktop.nix @@ -2,7 +2,7 @@ { imports = [ - + ]; environment.systemPackages = [ pkgs.tdesktop ]; diff --git a/qemu/qcow2/.keep b/qemu/qcow2/.keep new file mode 100644 index 0000000..e69de29 diff --git a/qemu.template b/qemu/qemu.template similarity index 92% rename from qemu.template rename to qemu/qemu.template index a9778f0..3cb36f2 100644 --- a/qemu.template +++ b/qemu/qemu.template @@ -1,6 +1,8 @@ #!/bin/bash -NIX_DISK_IMAGE=$(readlink -f ${NIX_DISK_IMAGE:-./tdesktop.qcow2}) +NAME=NAME_PLACEHOLDER + +NIX_DISK_IMAGE=$(readlink -f ${NIX_DISK_IMAGE:-./${NAME}.qcow2}) if ! test -e "$NIX_DISK_IMAGE"; then qemu-img create -f qcow2 "$NIX_DISK_IMAGE" 512M || exit 1 @@ -19,7 +21,7 @@ NIX_SYSTEM="NIX_SYSTEM_PLACEHOLDER" # Start QEMU. qemu-system-x86_64 -enable-kvm \ - -name tdesktop \ + -name NAME_PLACEHOLDER \ -m 1024 \ -smp 1 \ -device virtio-rng-pci \