#!/bin/bash if [ -e src/arctic/handle_syscalls.nim ]; then exit 0 fi if [ ! -e syscalls.json ]; then curl 'https://syscalls.mebeim.net/db/x86/64/x64/v6.6/table.json' > syscalls.json fi cat < src/arctic/handle_syscalls.nim import types import memory proc syscall(number: clong): clong {.importcpp: "syscall(@)", header: "", varargs.} template handle_syscall*(state: var ArcticState, number: int64) = case number: EOF jq -r -f generate_handle_syscalls.jq < syscalls.json >> src/arctic/handle_syscalls.nim cat <> src/arctic/handle_syscalls.nim else: # TODO: invalid syscall discard EOF