scatter some sigils
This commit is contained in:
parent
a16f438314
commit
2dd4dbbf6e
|
@ -2,16 +2,16 @@
|
|||
with config.krebs.lib;
|
||||
rec {
|
||||
execve = name: { filename, argv ? null, envp ? {}, destination ? "" }: let
|
||||
in writeC name { inherit destination; } ''
|
||||
in writeC name { inherit destination; } /* c */ ''
|
||||
#include <unistd.h>
|
||||
|
||||
static char *const filename = ${toC filename};
|
||||
|
||||
${if argv == null
|
||||
then /* Propagate arguments */ ''
|
||||
then /* Propagate arguments */ /* c */ ''
|
||||
#define MAIN_ARGS int argc, char **argv
|
||||
''
|
||||
else /* Provide fixed arguments */ ''
|
||||
else /* Provide fixed arguments */ /* c */ ''
|
||||
#define MAIN_ARGS void
|
||||
static char *const argv[] = ${toC (argv ++ [null])};
|
||||
''}
|
||||
|
@ -43,7 +43,7 @@ rec {
|
|||
assert types.filename.check name;
|
||||
pkgs.writeBash "/bin/${name}";
|
||||
|
||||
writeC = name: { destination ? "" }: src: pkgs.runCommand name {} ''
|
||||
writeC = name: { destination ? "" }: src: pkgs.runCommand name {} /* sh */ ''
|
||||
PATH=${makeBinPath (with pkgs; [
|
||||
binutils
|
||||
coreutils
|
||||
|
@ -65,7 +65,7 @@ rec {
|
|||
writeEximConfig = name: text: pkgs.runCommand name {
|
||||
inherit text;
|
||||
passAsFile = [ "text" ];
|
||||
} ''
|
||||
} /* sh */ ''
|
||||
# TODO validate exim config even with config.nix.useChroot == true
|
||||
# currently doing so will fail because "user exim was not found"
|
||||
#${pkgs.exim}/bin/exim -C "$textPath" -bV >/dev/null
|
||||
|
@ -121,7 +121,7 @@ rec {
|
|||
isExecutable = executables != {};
|
||||
isLibrary = library != null;
|
||||
|
||||
cabal-file = pkgs.writeText "${name}-${version}.cabal" ''
|
||||
cabal-file = pkgs.writeText "${name}-${version}.cabal" /* cabal */ ''
|
||||
build-type: Simple
|
||||
cabal-version: >= 1.2
|
||||
name: ${name}
|
||||
|
@ -137,7 +137,7 @@ rec {
|
|||
, text
|
||||
, ... }:
|
||||
if types.filename.check exe-name
|
||||
then "install -D ${file} $out/${relpath}"
|
||||
then /* sh */ "install -D ${file} $out/${relpath}"
|
||||
else throw "argument ‘exe-name’ is not a ${types.filename.name}";
|
||||
|
||||
exe-section =
|
||||
|
@ -147,7 +147,7 @@ rec {
|
|||
, file ? pkgs.writeText "${name}-${exe-name}.hs" text
|
||||
, relpath ? "${exe-name}.hs"
|
||||
, text
|
||||
, ... }: ''
|
||||
, ... }: /* cabal */ ''
|
||||
executable ${exe-name}
|
||||
build-depends: ${concatStringsSep "," build-depends}
|
||||
ghc-options: ${toString ghc-options}
|
||||
|
@ -170,7 +170,7 @@ rec {
|
|||
{ build-depends ? base-depends ++ extra-depends
|
||||
, extra-depends ? []
|
||||
, exposed-modules
|
||||
, ... }: ''
|
||||
, ... }: /* cabal */ ''
|
||||
library
|
||||
build-depends: ${concatStringsSep "," build-depends}
|
||||
ghc-options: ${toString ghc-options}
|
||||
|
@ -184,7 +184,7 @@ rec {
|
|||
, text
|
||||
, ... }:
|
||||
if types.haskell.modid.check mod-name
|
||||
then "install -D ${file} $out/${relpath}"
|
||||
then /* sh */ "install -D ${file} $out/${relpath}"
|
||||
else throw "argument ‘mod-name’ is not a ${types.haskell.modid.name}";
|
||||
in
|
||||
haskellPackages.mkDerivation {
|
||||
|
@ -198,7 +198,7 @@ rec {
|
|||
(optionals isLibrary (get-depends library))
|
||||
haskellPackages;
|
||||
pname = name;
|
||||
src = pkgs.runCommand "${name}-${version}-src" {} ''
|
||||
src = pkgs.runCommand "${name}-${version}-src" {} /* sh */ ''
|
||||
install -D ${cabal-file} $out/${cabal-file.name}
|
||||
${optionalString isLibrary (lib-install library)}
|
||||
${concatStringsSep "\n" (mapAttrsToList exe-install executables)}
|
||||
|
@ -210,7 +210,7 @@ rec {
|
|||
"The function `writeNixFromCabal` has been deprecated in favour of"
|
||||
"`writeHaskell`."
|
||||
])
|
||||
(name: path: pkgs.runCommand name {} ''
|
||||
(name: path: pkgs.runCommand name {} /* sh */ ''
|
||||
${pkgs.cabal2nix}/bin/cabal2nix ${path} > $out
|
||||
'');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue