From 2fef367e459023a40b3b6bd30db5ae61336586b5 Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Sat, 30 Jun 2018 19:42:31 +0000 Subject: [PATCH] First useful solution --- .gitignore | 5 ++++- appvm.sh | 12 ++++++++++++ base.nix => nix/base.nix | 0 tdesktop.nix => nix/tdesktop.nix | 2 +- qemu/qcow2/.keep | 0 qemu.template => qemu/qemu.template | 6 ++++-- 6 files changed, 21 insertions(+), 4 deletions(-) create mode 100755 appvm.sh rename base.nix => nix/base.nix (100%) rename tdesktop.nix => nix/tdesktop.nix (93%) create mode 100644 qemu/qcow2/.keep rename qemu.template => qemu/qemu.template (92%) 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 \