cleanup whitespace and commas

* [] is now [ ]
* {} is now { }
* commas in arglists go at end of line not beginning

In short, I ran the whole thing through nixfmt-rfc-style but only
accepted about 30% of its changes. I might grow accustomed to more
of it over time
This commit is contained in:
Daniel Barlow
2024-06-30 16:58:29 +01:00
parent 0d3218127f
commit 3df1ec76ff
63 changed files with 533 additions and 491 deletions

View File

@@ -1,10 +1,10 @@
{
fennel
, stdenv
, linotify
, lua
, lualinux
, cpio
fennel,
stdenv,
linotify,
lua,
lualinux,
cpio,
}:
let pname = "anoia";
in stdenv.mkDerivation {

View File

@@ -1,7 +1,4 @@
{
callPackage
, lib
}:
{ callPackage, lib }:
let
typeChecked = caller: type: value:
let
@@ -11,11 +8,11 @@ let
in (mergeDefinitions [] type' defs).mergedValue;
in {
liminix = {
builders = {
squashfs = callPackage ./liminix-tools/builders/squashfs.nix {};
dtb = callPackage ./kernel/dtb.nix {};
uimage = callPackage ./kernel/uimage.nix {};
kernel = callPackage ./kernel {};
builders = {
squashfs = callPackage ./liminix-tools/builders/squashfs.nix { };
dtb = callPackage ./kernel/dtb.nix { };
uimage = callPackage ./kernel/uimage.nix { };
kernel = callPackage ./kernel { };
};
callService = path : parameters :
let pkg = callPackage path {};
@@ -49,71 +46,71 @@ in {
};
inherit typeChecked;
};
networking = callPackage ./liminix-tools/networking {};
services = callPackage ./liminix-tools/services {};
networking = callPackage ./liminix-tools/networking { };
services = callPackage ./liminix-tools/services { };
};
# please keep the rest of this list alphabetised :-)
anoia = callPackage ./anoia {};
devout = callPackage ./devout {};
fennel = callPackage ./fennel {};
fennelrepl = callPackage ./fennelrepl {};
firewallgen = callPackage ./firewallgen {};
firmware-utils = callPackage ./firmware-utils {};
gen_init_cpio = callPackage ./gen_init_cpio {};
go-l2tp = callPackage ./go-l2tp {};
hi = callPackage ./hi {};
ifwait = callPackage ./ifwait {};
initramfs-peek = callPackage ./initramfs-peek {};
kernel-backport = callPackage ./kernel-backport {};
kmodloader = callPackage ./kmodloader {};
levitate = callPackage ./levitate {};
libubootenv = callPackage ./libubootenv {};
linotify = callPackage ./linotify {};
lualinux = callPackage ./lualinux {};
anoia = callPackage ./anoia { };
devout = callPackage ./devout { };
fennel = callPackage ./fennel { };
fennelrepl = callPackage ./fennelrepl { };
firewallgen = callPackage ./firewallgen { };
firmware-utils = callPackage ./firmware-utils { };
gen_init_cpio = callPackage ./gen_init_cpio { };
go-l2tp = callPackage ./go-l2tp { };
hi = callPackage ./hi { };
ifwait = callPackage ./ifwait { };
initramfs-peek = callPackage ./initramfs-peek { };
kernel-backport = callPackage ./kernel-backport { };
kmodloader = callPackage ./kmodloader { };
levitate = callPackage ./levitate { };
libubootenv = callPackage ./libubootenv { };
linotify = callPackage ./linotify { };
lualinux = callPackage ./lualinux { };
# we need to build real lzma instead of using xz, because the lzma
# decoder in u-boot doesn't understand streaming lzma archives
# ("Stream with EOS marker is not supported") and xz can't create
# non-streaming ones. See
# https://sourceforge.net/p/squashfs/mailman/message/26599379/
lzma = callPackage ./lzma {};
lzma = callPackage ./lzma { };
mac80211 = callPackage ./mac80211 {};
zyxel-bootconfig = callPackage ./zyxel-bootconfig {};
min-collect-garbage = callPackage ./min-collect-garbage {};
min-copy-closure = callPackage ./min-copy-closure {};
minisock = callPackage ./minisock {};
nellie = callPackage ./nellie {};
netlink-lua = callPackage ./netlink-lua {};
odhcp-script = callPackage ./odhcp-script {};
odhcp6c = callPackage ./odhcp6c {};
openwrt = callPackage ./openwrt {};
ppp = callPackage ./ppp {};
pppoe = callPackage ./pppoe {};
preinit = callPackage ./preinit {};
pseudofile = callPackage ./pseudofile {};
routeros = callPackage ./routeros {};
run-liminix-vm = callPackage ./run-liminix-vm {};
s6-init-bin = callPackage ./s6-init-bin {};
s6-rc-database = callPackage ./s6-rc-database {};
s6-rc-up-tree = callPackage ./s6-rc-up-tree {};
mac80211 = callPackage ./mac80211 { };
zyxel-bootconfig = callPackage ./zyxel-bootconfig { };
min-collect-garbage = callPackage ./min-collect-garbage { };
min-copy-closure = callPackage ./min-copy-closure { };
minisock = callPackage ./minisock { };
nellie = callPackage ./nellie { };
netlink-lua = callPackage ./netlink-lua { };
odhcp-script = callPackage ./odhcp-script { };
odhcp6c = callPackage ./odhcp6c { };
openwrt = callPackage ./openwrt { };
ppp = callPackage ./ppp { };
pppoe = callPackage ./pppoe { };
preinit = callPackage ./preinit { };
pseudofile = callPackage ./pseudofile { };
routeros = callPackage ./routeros { };
run-liminix-vm = callPackage ./run-liminix-vm { };
s6-init-bin = callPackage ./s6-init-bin { };
s6-rc-database = callPackage ./s6-rc-database { };
s6-rc-up-tree = callPackage ./s6-rc-up-tree { };
# schnapps is written by Turris and provides a high-level interface
# to btrfs snapshots. It may be useful on the Turris Omnia to
# install Liminix while retaining the ability to rollback to the
# vendor OS, or even to derisk Liminix updates on that device
schnapps = callPackage ./schnapps {};
schnapps = callPackage ./schnapps { };
serviceFns = callPackage ./service-fns {};
swconfig = callPackage ./swconfig {};
systemconfig = callPackage ./systemconfig {};
tufted = callPackage ./tufted {};
uevent-watch = callPackage ./uevent-watch {};
usb-modeswitch = callPackage ./usb-modeswitch {};
writeAshScript = callPackage ./write-ash-script {};
writeAshScriptBin = callPackage ./write-ash-script/bin.nix {};
writeFennel = callPackage ./write-fennel {};
writeFennelScript = callPackage ./write-fennel-script {};
serviceFns = callPackage ./service-fns { };
swconfig = callPackage ./swconfig { };
systemconfig = callPackage ./systemconfig { };
tufted = callPackage ./tufted { };
uevent-watch = callPackage ./uevent-watch { };
usb-modeswitch = callPackage ./usb-modeswitch { };
writeAshScript = callPackage ./write-ash-script { };
writeAshScriptBin = callPackage ./write-ash-script/bin.nix { };
writeFennel = callPackage ./write-fennel { };
writeFennelScript = callPackage ./write-fennel-script { };
}

View File

@@ -1,10 +1,11 @@
{ nellie
, writeFennel
, anoia
, fennel
, stdenv
, fennelrepl
, lualinux
{
nellie,
writeFennel,
anoia,
fennel,
stdenv,
fennelrepl,
lualinux,
}:
stdenv.mkDerivation {
name = "devout";

View File

@@ -1,7 +1,7 @@
{
stdenv
, lua
, fetchFromSourcehut
stdenv,
lua,
fetchFromSourcehut,
}:
let pname = "fennel";
in stdenv.mkDerivation {

View File

@@ -1,7 +1,7 @@
{
buildGoModule
, fetchFromGitHub
, ppp
buildGoModule,
fetchFromGitHub,
ppp,
}:
buildGoModule rec {
@@ -12,7 +12,7 @@ buildGoModule rec {
repo = "go-l2tp";
owner = "katalix";
rev = "570d763";
hash= "sha256-R8ImKPkPBC+FvzKOBEZ3VxQ12dEjtfRa7AH94xMsAGA=";
hash = "sha256-R8ImKPkPBC+FvzKOBEZ3VxQ12dEjtfRa7AH94xMsAGA=";
};
patchPhase = ''
@@ -23,5 +23,4 @@ buildGoModule rec {
doCheck = false;
vendorHash = "sha256-hOkhJhToN/VJwjQmnQJSPGz26/YDR2Ch+1yeW51OF+U=";
}

View File

@@ -1,9 +1,15 @@
{ netlink-lua
, writeFennelScript
, runCommand
, anoia
{
netlink-lua,
writeFennelScript,
runCommand,
anoia,
}:
runCommand "ifwait" {} ''
runCommand "ifwait" { } ''
mkdir -p $out/bin
cp -p ${writeFennelScript "ifwait" [anoia netlink-lua] ./ifwait.fnl} $out/bin/ifwait
cp -p ${
writeFennelScript "ifwait" [
anoia
netlink-lua
] ./ifwait.fnl
} $out/bin/ifwait
''

View File

@@ -1,14 +1,14 @@
{
busybox
, pkgsBuildBuild
, runCommand
, cpio
, writeReferencesToFile
, writeScript
} :
busybox,
pkgsBuildBuild,
runCommand,
cpio,
writeReferencesToFile,
writeScript,
}:
let
inherit (pkgsBuildBuild) gen_init_cpio;
script = writeScript "init" ''
script = writeScript "init" ''
#!/bin/sh
exec >/dev/console
echo Running in initramfs

View File

@@ -1,17 +1,18 @@
{ stdenv
, git
, python2
, which
, fetchgit
, fetchFromGitHub
, coccinelle
{
stdenv,
git,
python2,
which,
fetchgit,
fetchFromGitHub,
coccinelle,
}:
let
donorTree = fetchFromGitHub {
owner = "torvalds";
repo = "linux";
rev = "e2c1a934fd8e4288e7a32f4088ceaccf469eb74c"; # 5.15.94
hash= "sha256-Jg3EgL86CseuzYMAlUG3CDWPCo8glMSIZs10l7EuhWI=";
rev = "e2c1a934fd8e4288e7a32f4088ceaccf469eb74c"; # 5.15.94
hash = "sha256-Jg3EgL86CseuzYMAlUG3CDWPCo8glMSIZs10l7EuhWI=";
};
backports = stdenv.mkDerivation {
name = "linux-backports";

View File

@@ -1,29 +1,38 @@
{ stdenv
, buildPackages
, writeText
, lib
{
stdenv,
buildPackages,
writeText,
lib,
, config
, src
, version ? "0"
, extraPatchPhase ? "echo"
, targets ? ["vmlinux"]
} :
config,
src,
version ? "0",
extraPatchPhase ? "echo",
targets ? [ "vmlinux" ],
}:
let
writeConfig = import ./write-kconfig.nix { inherit lib writeText; };
kconfigFile = writeConfig "kconfig" config;
arch = stdenv.hostPlatform.linuxArch;
targetNames = map baseNameOf targets;
inherit lib; in
targetNames = map baseNameOf targets;
inherit lib;
in
stdenv.mkDerivation rec {
name = "kernel";
inherit src extraPatchPhase;
hardeningDisable = ["all"];
nativeBuildInputs = [buildPackages.stdenv.cc] ++
(with buildPackages.pkgs; [
rsync bc bison flex pkg-config
openssl ncurses.all perl
]);
hardeningDisable = [ "all" ];
nativeBuildInputs =
[ buildPackages.stdenv.cc ]
++ (with buildPackages.pkgs; [
rsync
bc
bison
flex
pkg-config
openssl
ncurses.all
perl
]);
CC = "${stdenv.cc.bintools.targetPrefix}gcc";
HOSTCC = with buildPackages.pkgs;
"gcc -I${openssl}/include -I${ncurses}/include";

View File

@@ -1,12 +1,12 @@
{
liminix
, lib
, targets ? []
, kernel ? null
, runCommand
, pkgsBuildBuild
, dependencies ? []
} :
liminix,
lib,
targets ? [ ],
kernel ? null,
runCommand,
pkgsBuildBuild,
dependencies ? [ ],
}:
let
inherit (liminix.services) oneshot;
inherit (lib) concatStringsSep;

View File

@@ -1,14 +1,14 @@
{
writeScriptBin
, writeScript
, systemconfig
, execline
, lib
, config ? {}
, liminix
, pseudofile
, pkgs
} :
writeScriptBin,
writeScript,
systemconfig,
execline,
lib,
config ? { },
liminix,
pseudofile,
pkgs,
}:
let
inherit (pseudofile) dir symlink;
inherit (liminix.services) oneshot;
@@ -16,7 +16,7 @@ let
newRoot = "/run/maintenance";
sysconfig =
let
doChroot = writeScript "exec" ''
doChroot = writeScript "exec" ''
#!${execline}/bin/execlineb -P
cd ${newRoot}
foreground { mount --move ${newRoot} / }

View File

@@ -1,9 +1,10 @@
{ stdenv
, cmake
, zlib
, libyaml
, fetchFromGitHub
} :
{
stdenv,
cmake,
zlib,
libyaml,
fetchFromGitHub,
}:
stdenv.mkDerivation {
name = "libubootenv";
src = fetchFromGitHub {

View File

@@ -15,5 +15,4 @@ in lua.pkgs.buildLuaPackage {
mkdir -p "$out/lib/lua/${lua.luaversion}"
cp inotify.so "$out/lib/lua/${lua.luaversion}/"
'';
}

View File

@@ -21,5 +21,4 @@ in lua.pkgs.buildLuaPackage {
mkdir -p "$out/lib/lua/${lua.luaversion}"
cp ${pname}.so "$out/lib/lua/${lua.luaversion}/"
'';
}

View File

@@ -1,7 +1,4 @@
{
stdenv
, fetchurl
}:
{ stdenv, fetchurl }:
stdenv.mkDerivation {
pname = "lzma";
version = "4.32.7";

View File

@@ -1,17 +1,17 @@
# make out-of-tree modules given a backported kernel source tree
{
extraConfig ? {}
, drivers ? [ ]
, kernel-backport
, stdenv
, writeText
, klibBuild ? null
, buildPackages
, fetchFromGitHub
extraConfig ? { },
drivers ? [ ],
kernel-backport,
stdenv,
writeText,
klibBuild ? null,
buildPackages,
fetchFromGitHub,
, liminix
, lib
liminix,
lib,
}:
let
arch = stdenv.hostPlatform.linuxArch;

View File

@@ -1,9 +1,10 @@
{
stdenv
, nix
, cpio
, openssh
}: stdenv.mkDerivation {
stdenv,
nix,
cpio,
openssh,
}:
stdenv.mkDerivation {
name = "min-copy-closure";
buildInputs = [ ];
propagatedBuildInputs = [ cpio openssh nix ];

View File

@@ -1,6 +1,6 @@
{
writeFennelScript
, anoia
, lualinux
writeFennelScript,
anoia,
lualinux,
}:
writeFennelScript "odhcpc-script" [anoia lualinux] ./odhcp6-script.fnl

View File

@@ -1,7 +1,9 @@
{ stdenv
, cmake
, fetchFromGitHub
, ...} :
{
stdenv,
cmake,
fetchFromGitHub,
...
}:
# let switchDotH = buildPackages.fetchurl {
# url = "https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob_plain;f=target/linux/generic/files/include/uapi/linux/switch.h;hb=99a188828713d6ff9c541590b08d4e63ef52f6d7";
# sha256 = "15kmhhcpd84y4f45rf8zai98c61jyvkc37p90pcxirna01x33wi8";

View File

@@ -1,7 +1,4 @@
{
fetchFromGitHub
, pkgsBuildBuild
}:
{ fetchFromGitHub, pkgsBuildBuild }:
let
src = fetchFromGitHub {
name = "openwrt-source";
@@ -10,7 +7,7 @@ let
rev = "refs/tags/v23.05.2";
hash = "sha256-kP+cSOB6LiOMWs7g+ji7P7ehiDYDwRdmT4R5jSzw6K4=";
};
doPatch = family : ''
doPatch = family: ''
cp -av ${src}/target/linux/generic/files/* .
chmod -R u+w .
cp -av ${src}/target/linux/${family}/files/* .

View File

@@ -1,8 +1,8 @@
{
fetchFromGitHub
, stdenv
, autoreconfHook
, substituteAll
fetchFromGitHub,
stdenv,
autoreconfHook,
substituteAll,
# , openssl
}: stdenv.mkDerivation {
pname = "ppp";
@@ -35,6 +35,4 @@
"man"
"dev"
];
}

View File

@@ -1,7 +1,9 @@
{ lib
, stdenv
, fetchFromGitHub
, ppp } :
{
lib,
stdenv,
fetchFromGitHub,
ppp,
}:
stdenv.mkDerivation rec {
pname = "rp-pppoe";
version = "3.15";
@@ -20,7 +22,9 @@ stdenv.mkDerivation rec {
export PPPD=${ppp}/sbin/pppd
'';
configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "rpppoe_cv_pack_bitfields=rev" ];
configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"rpppoe_cv_pack_bitfields=rev"
];
postConfigure = ''
sed -i Makefile -e 's@DESTDIR)/etc/ppp@out)/etc/ppp@'

View File

@@ -1,12 +1,9 @@
{
stdenv
, gdb
}:
{ stdenv, gdb }:
stdenv.mkDerivation {
name = "preinit";
src = ./.;
# NIX_DEBUG=2;
# NIX_DEBUG=2;
hardeningDisable = [ "all" ];
postBuild = ''
@@ -14,8 +11,8 @@ stdenv.mkDerivation {
ls -l preinit
'';
makeFlags = ["preinit"];
stripAllList = ["bin"];
makeFlags = [ "preinit" ];
stripAllList = [ "bin" ];
installPhase = ''
mkdir -p $out/bin
cp preinit $out/bin

View File

@@ -1,7 +1,4 @@
{
writeText
, lib
}:
{ writeText, lib }:
let
inherit (lib.attrsets) mapAttrsToList;
visit = prefix: attrset:

View File

@@ -1,9 +1,9 @@
{
stdenv
, python3
, qemu
, fetchzip
, writeShellApplication
stdenv,
python3,
qemu,
fetchzip,
writeShellApplication,
}:
let
chr-image = fetchzip {
@@ -14,7 +14,7 @@ let
ros-exec-script = stdenv.mkDerivation {
name = "ros-exec-script";
src = ./.;
buildInputs = [python3];
buildInputs = [ python3 ];
buildPhase = ":";
installPhase = ''
mkdir -p $out/bin

View File

@@ -1,18 +1,19 @@
{
qemuLim
, socat
, writeShellScript
, writeFennel
, runCommand
, lib
, lua
, pkgsBuildBuild
}: let
qemuLim,
socat,
writeShellScript,
writeFennel,
runCommand,
lib,
lua,
pkgsBuildBuild,
}:
let
run-liminix-vm = pkgsBuildBuild.writeFennel "run-liminix-vm" {
packages = [ qemuLim lua.pkgs.luaposix lua.pkgs.fennel ];
} ./run-liminix-vm.fnl;
connect = writeShellScript "connect-vm" ''
export PATH="${lib.makeBinPath [socat]}:$PATH"
export PATH="${lib.makeBinPath [ socat ]}:$PATH"
socat -,raw,echo=0,icanon=0,isig=0,icrnl=0,escape=0x0f unix-connect:$1
'';
in runCommand "vm" {} ''

View File

@@ -1,10 +1,10 @@
{
s6-linux-init
, execline
, writeScript
, stdenvNoCC
, lib
, s6-rc
s6-linux-init,
execline,
writeScript,
stdenvNoCC,
lib,
s6-rc,
}:
let
hpr = name: arg: writeScript name ''

View File

@@ -2,11 +2,11 @@
# config.services and calling s6-rc-compile on them
{
stdenvNoCC
, buildPackages
, closureInfo
, writeText
, services ? []
stdenvNoCC,
buildPackages,
closureInfo,
writeText,
services ? [ ],
}:
let closure-info = closureInfo { rootPaths = services; };
in stdenvNoCC.mkDerivation {

View File

@@ -1,17 +1,17 @@
{
stdenv
, fetchFromGitLab
, makeWrapper
, btrfs-progs
, util-linux-small
, lib
stdenv,
fetchFromGitLab,
makeWrapper,
btrfs-progs,
util-linux-small,
lib,
}:
let search_path = lib.makeBinPath [btrfs-progs util-linux-small];
in stdenv.mkDerivation {
pname = "schnapps";
version = "2.13.0";
src =fetchFromGitLab {
src = fetchFromGitLab {
domain = "gitlab.nic.cz";
owner = "turris";
repo = "schnapps";

View File

@@ -1,4 +1,4 @@
{writeText}:
{ writeText }:
writeText "service-fns.sh" ''
output() { cat $1/.outputs/$2; }
output_word() {

View File

@@ -14,8 +14,8 @@ in stdenv.mkDerivation {
name = "swconfig";
buildInputs = [ buildPackages.pkg-config ];
nativeBuildInputs = [ libnl ];
CFLAGS="-O2 -Ifrom_kernel -I${libnl.dev}/include/libnl3";
LDFLAGS="-L${libnl.out}/lib";
CFLAGS = "-O2 -Ifrom_kernel -I${libnl.dev}/include/libnl3";
LDFLAGS = "-L${libnl.out}/lib";
patchPhase = ''
mkdir -p from_kernel/linux

View File

@@ -5,12 +5,12 @@
# they should contain
{
writeText
, writeFennelScript
, lib
, s6-init-bin
, closureInfo
, stdenv
writeText,
writeFennelScript,
lib,
s6-init-bin,
closureInfo,
stdenv,
}:
let
inherit (lib.attrsets) mapAttrsToList;

View File

@@ -1,8 +1,8 @@
{
lua5_3
, stdenv
, makeWrapper
} :
lua5_3,
stdenv,
makeWrapper,
}:
let
lua = lua5_3.withPackages (ps: with ps; [
luasocket luaposix fennel

View File

@@ -1,11 +1,12 @@
{ nellie
, lualinux
, writeFennel
, anoia
, fennel
, stdenv
, fennelrepl
, s6-rc-up-tree
{
nellie,
lualinux,
writeFennel,
anoia,
fennel,
stdenv,
fennelrepl,
s6-rc-up-tree,
}:
stdenv.mkDerivation {
name = "uevent-watch";

View File

@@ -1,9 +1,10 @@
# usb modeswitch without udev, tcl, coreutils, bash dependencies
{ stdenv
, lib
, fetchurl
, pkg-config
, libusb1
{
stdenv,
lib,
fetchurl,
pkg-config,
libusb1,
}:
let
pname = "usb-modeswitch";
@@ -12,7 +13,7 @@ in stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2";
url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2";
sha256 = "18wbbxc5cfsmikba0msdvd5qlaga27b32nhrzicyd9mdddp265f2";
};
@@ -34,6 +35,6 @@ in stdenv.mkDerivation {
meta = {
license = lib.licenses.gpl2;
maintainers = [];
maintainers = [ ];
};
}

View File

@@ -1,13 +1,15 @@
{ writeScript, lib }:
name:
{
writeScript
, lib
}
: name : { runtimeInputs ? [] } : text : writeScript name ''
#!/bin/sh
set -o errexit
set -o nounset
set -o pipefail
runtimeInputs ? [ ],
}:
text:
writeScript name ''
#!/bin/sh
set -o errexit
set -o nounset
set -o pipefail
export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
${text}
export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
${text}
''

View File

@@ -1,5 +1,3 @@
{ writeFennel
, stdenv
}:
name : packages : source :
{ writeFennel, stdenv }:
name: packages: source:
writeFennel name { inherit packages; } source

View File

@@ -1,38 +1,38 @@
{
lua
, lib
, fennel
, stdenv
lua,
lib,
fennel,
stdenv,
}:
name :
name:
{
packages ? [],
packages ? [ ],
correlate ? false,
mainFunction ? null
} : source :
let
luapath = builtins.map
(f:
"${f}/share/lua/${lua.luaversion}/?.lua;" +
"${f}/share/lua/${lua.luaversion}/?/init.lua;")
packages;
luacpath = builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so;") packages;
luaFlags = lib.optionalString (mainFunction !=null) "-e dofile(arg[0]).${mainFunction}()";
in stdenv.mkDerivation {
inherit name;
src = ./.;
nativeBuildInputs = [ fennel ];
buildPhase = ''
(
echo "#!${lua}/bin/lua ${luaFlags}"
echo "package.path = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luapath)} .. package.path"
echo "package.cpath = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luacpath)} .. package.cpath"
echo "local ok, stdlib = pcall(require,'posix.stdlib'); if ok then stdlib.setenv('PATH',${lib.escapeShellArg (lib.makeBinPath packages)} .. \":\" .. os.getenv('PATH')) end"
fennel ${if correlate then "--correlate" else ""} --compile ${source}
) > ${name}.lua
'';
installPhase = ''
cp ${name}.lua $out
chmod +x $out
'';
}
mainFunction ? null,
}:
source:
let
luapath = builtins.map (
f: "${f}/share/lua/${lua.luaversion}/?.lua;" + "${f}/share/lua/${lua.luaversion}/?/init.lua;"
) packages;
luacpath = builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so;") packages;
luaFlags = lib.optionalString (mainFunction != null) "-e dofile(arg[0]).${mainFunction}()";
in
stdenv.mkDerivation {
inherit name;
src = ./.;
nativeBuildInputs = [ fennel ];
buildPhase = ''
(
echo "#!${lua}/bin/lua ${luaFlags}"
echo "package.path = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luapath)} .. package.path"
echo "package.cpath = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luacpath)} .. package.cpath"
echo "local ok, stdlib = pcall(require,'posix.stdlib'); if ok then stdlib.setenv('PATH',${lib.escapeShellArg (lib.makeBinPath packages)} .. \":\" .. os.getenv('PATH')) end"
fennel ${if correlate then "--correlate" else ""} --compile ${source}
) > ${name}.lua
'';
installPhase = ''
cp ${name}.lua $out
chmod +x $out
'';
}

View File

@@ -1,7 +1,4 @@
{
stdenv
, openwrt
}:
{ stdenv, openwrt }:
stdenv.mkDerivation {
name = "zyxel-bootconfig";
inherit (openwrt) src;