add routeros to overlay
This commit is contained in:
53
pkgs/routeros/default.nix
Normal file
53
pkgs/routeros/default.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
stdenv
|
||||
, python3
|
||||
, qemu
|
||||
, fetchzip
|
||||
, writeShellApplication
|
||||
}:
|
||||
let
|
||||
chr-image = fetchzip {
|
||||
url = "https://download.mikrotik.com/routeros/7.7/chr-7.7.img.zip";
|
||||
hash = "sha256-utBQMUgNvl/UTG+GjnQShlGgVtHmRKtnhSTWW/JyeiY=";
|
||||
curlOpts = "-L";
|
||||
};
|
||||
ros-exec-script = stdenv.mkDerivation {
|
||||
name = "ros-exec-script";
|
||||
src = ./.;
|
||||
buildInputs = [python3];
|
||||
buildPhase = ":";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ros-exec-script.py $out/bin/ros-exec-script
|
||||
chmod +x $out/bin/ros-exec-script
|
||||
'';
|
||||
};
|
||||
routeros = writeShellApplication {
|
||||
name = "routeros";
|
||||
runtimeInputs = [ qemu ros-exec-script ];
|
||||
text = ''
|
||||
RUNTIME_DIRECTORY=$1
|
||||
test -d "$RUNTIME_DIRECTORY" || exit 1
|
||||
${qemu}/bin/qemu-system-x86_64 \
|
||||
-M q35 \
|
||||
-m 1024 \
|
||||
-accel kvm \
|
||||
-display none \
|
||||
-daemonize \
|
||||
-pidfile "$RUNTIME_DIRECTORY/pid" \
|
||||
-serial "unix:$RUNTIME_DIRECTORY/console,server,nowait"\
|
||||
-monitor "unix:$RUNTIME_DIRECTORY/monitor,server,nowait" \
|
||||
-snapshot -drive file=${chr-image}/chr-7.7.img,format=raw,if=virtio \
|
||||
-chardev "socket,path=$RUNTIME_DIRECTORY/qmp,server=on,wait=off,id=qga0" \
|
||||
-device virtio-serial \
|
||||
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \
|
||||
-netdev socket,id=access,mcast=230.0.0.1:1234,localaddr=127.0.0.1 \
|
||||
-device virtio-net-pci,disable-legacy=on,disable-modern=off,netdev=access,mac=ba:ad:1d:ea:11:02 \
|
||||
-netdev socket,id=world,mcast=230.0.0.1:1236,localaddr=127.0.0.1 \
|
||||
-device virtio-net-pci,disable-legacy=on,disable-modern=off,netdev=world,mac=ba:ad:1d:ea:11:01
|
||||
ros-exec-script "$RUNTIME_DIRECTORY/qmp" ${./routeros.config}
|
||||
'';
|
||||
};
|
||||
in {
|
||||
inherit routeros ros-exec-script;
|
||||
}
|
Reference in New Issue
Block a user