Merge remote-tracking branch 'ni/master'

This commit is contained in:
lassulus 2021-01-05 13:37:16 +01:00
commit 91e7352884
3 changed files with 156 additions and 0 deletions

View File

@ -0,0 +1,100 @@
{ lib, pkgs, stdenv }:
stdenv.mkDerivation rec {
name = "TabFS";
src = pkgs.fetchgit {
url = https://cgit.krebsco.de/TabFS;
rev = "1fc4845283a0e6aa46a8d8978f356d5ccdcedd13";
sha256 = "0bsm5fhxrr6zwbnm9p10h9pwm85llr02g2ch97a62r62dhjjrc8h";
};
phases = [
"unpackPhase"
"buildPhase"
"installPhase"
];
nativeBuildInputs = [
pkgs.jq
];
buildInputs = [
pkgs.fuse
];
buildPhase = ''
make -C fs
'';
installPhase = ''
mkdir -p $out/bin
cp fs/tabfs $out/bin
${lib.concatStrings
(lib.mapAttrsToList
(name: spec: /* sh */ ''
jq < ${spec.source} > $out/bin/${name} \
--arg out $out \
--arg path ${lib.makeBinPath spec.path} \
-Rrs \
${lib.escapeShellArg /* jq */ ''
def when(cond; update): if cond then update else . end;
split("\n") |
map(${lib.concatMapStringsSep "|" (filter: "(${filter})")
(lib.toList (spec.filter or []) ++ [
/* jq */ ''when(test("^#!"); "\(.)\nexport PATH=\($path)")''
])
}) |
join("\n")
''}
chmod +x $out/bin/${name}
'')
{
tabfs-enable-native-messaging = {
source = "install.sh";
path = [
pkgs.coreutils
];
filter = /* jq */''
when(test("^EXE_PATH="); "EXE_PATH=\($out)/bin/tabfs-wrapper")
'';
};
tabfs-wrapper = {
source = "fs/tabfs-wrapper";
path = [
pkgs.coreutils
pkgs.findutils
pkgs.gnugrep
pkgs.procps
"/run/wrappers" # for fusermount
];
};
tabfs-build-crx = {
source = "build-crx.sh";
path = [
pkgs.coreutils
pkgs.crx
pkgs.gnugrep
pkgs.jq
pkgs.openssl
];
filter = /* jq */''
when(test("^source_dir=");
sub("\\$\\(dirname \"\\$0\"\\)"; ${builtins.toJSON src})
)
'';
};
tabfs-install-crx = {
source = "install-crx.sh";
path = [
pkgs.coreutils
];
};
}
)
}
'';
}

View File

@ -0,0 +1,50 @@
{ lib, pkgs, stdenv }:
stdenv.mkDerivation rec {
pname = "crx";
version = "1.1.0";
src = pkgs.fetchgit {
url = https://cgit.krebsco.de/crx;
rev = "refs/tags/v${version}";
sha256 = "10xwrdxwbvqydayg6a4jcl3cfp4wi9ssm7a0dlnclkc4rmf6sv4a";
};
phases = [
"unpackPhase"
"installPhase"
];
installPhase = ''
mkdir -p $out/bin
${lib.concatStrings
(lib.mapAttrsToList
(name: path: /* sh */ ''
sed \
's,^set -efu$,&\nPATH=${lib.makeBinPath path}; export PATH,' \
< ./${name} \
> $out/bin/${name}
chmod +x $out/bin/${name}
'')
{
crxid = [
pkgs.bc
pkgs.coreutils
pkgs.file
pkgs.gnused
pkgs.openssl
pkgs.xxd
];
crxmake = [
pkgs.coreutils
pkgs.gnused
pkgs.openssl
pkgs.xxd
pkgs.zip
];
}
)
}
'';
}

View File

@ -65,6 +65,9 @@ let {
public-repos = mapAttrs make-public-repo ({
} // mapAttrs (_: recursiveUpdate { cgit.section = "1. miscellaneous"; }) {
crx = {
cgit.desc = "utilities for working with Chrome extensions";
};
dic = {
cgit.desc = "dict.leo.org command line interface";
};
@ -102,6 +105,9 @@ let {
stockholm = {
cgit.desc = "NixOS configuration";
};
TabFS = {
cgit.desc = "mount browser tabs & co. as a filesystem";
};
with-ssh = {};
} // mapAttrs (_: recursiveUpdate { cgit.section = "2. Host configurations"; }) {
ni = {