Merge branch 'master' of prism.r:stockholm
This commit is contained in:
commit
ab7b04f55e
@ -1,8 +1,11 @@
|
||||
{ config, ... }:
|
||||
with import <stockholm/lib>;
|
||||
let
|
||||
nixos-version-id = "${config.system.nixosVersion}";
|
||||
nixos-version = "${nixos-version-id} (${config.system.nixosCodeName})";
|
||||
nixos-version-id = if (hasAttr "nixos" config.system) then
|
||||
"${config.system.nixos.version}" else "${config.system.nixosVersion}";
|
||||
nixos-codeName = if (hasAttr "nixos" config.system) then
|
||||
"${config.system.nixos.codeName}" else "${config.system.nixosCodeName}";
|
||||
nixos-version = "${nixos-version-id} (${nixos-codeName})";
|
||||
nixos-pretty-name = "NixOS ${nixos-version}";
|
||||
|
||||
stockholm-version-id = let
|
||||
|
@ -1,25 +0,0 @@
|
||||
{ mkDerivation, attoparsec, base, containers, Diff, fetchgit, mtl
|
||||
, nix-derivation, optparse-generic, stdenv, system-filepath, text
|
||||
, unix, vector
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "nix-diff";
|
||||
version = "1.0.0-krebs1";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/Gabriel439/nix-diff";
|
||||
sha256 = "1k00nx8pannqmpzadkwfrs6bf79yk22ynhd033z5rsyw0m8fcz9k";
|
||||
rev = "e32ffa2c7f38b47a71325a042c1d887fb46cdf7d";
|
||||
};
|
||||
patches = [
|
||||
./nixos-system.patch
|
||||
];
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [
|
||||
attoparsec base containers Diff mtl nix-derivation optparse-generic
|
||||
system-filepath text unix vector
|
||||
];
|
||||
homepage = "https://github.com/Gabriel439/nix-diff";
|
||||
description = "Explain why two Nix derivations differ";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
diff --git a/src/Main.hs b/src/Main.hs
|
||||
index 959ab8e..d3b6077 100644
|
||||
--- a/src/Main.hs
|
||||
+++ b/src/Main.hs
|
||||
@@ -95,7 +95,12 @@ pathToText path =
|
||||
underneath `/nix/store`, but this is the overwhelmingly common use case
|
||||
-}
|
||||
derivationName :: FilePath -> Text
|
||||
-derivationName = Data.Text.dropEnd 4 . Data.Text.drop 44 . pathToText
|
||||
+derivationName p =
|
||||
+ if Data.Text.isPrefixOf "nixos-system" s
|
||||
+ then "nixos-system"
|
||||
+ else s
|
||||
+ where
|
||||
+ s = Data.Text.dropEnd 4 . Data.Text.drop 44 . pathToText $ p
|
||||
|
||||
-- | Group input derivations by their name
|
||||
groupByName :: Map FilePath (Set Text) -> Map Text (Map FilePath (Set Text))
|
@ -18,20 +18,27 @@ def is_regex(line):
|
||||
myre = re.compile(r'^s/(?:\\/|[^/])+/(?:\\/|[^/])*/[ig]?$')
|
||||
return myre.match(line)
|
||||
|
||||
|
||||
line = argv[1]
|
||||
|
||||
if is_regex(line):
|
||||
last = d.get(usr, None)
|
||||
if last:
|
||||
from subprocess import Popen, PIPE
|
||||
p = Popen(['sed', line], stdin=PIPE, stdout=PIPE)
|
||||
p = Popen(['sed', line], stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
||||
so, se = p.communicate(bytes("{}\n".format(last), "UTF-8"))
|
||||
if p.returncode:
|
||||
print("something went wrong when trying to process your regex: {}".format(se.decode()))
|
||||
print("something went wrong when trying to process your regex: {}".format(line.strip()))
|
||||
ret = so.decode()
|
||||
print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip()))
|
||||
if ret:
|
||||
d[usr] = ret
|
||||
if len(ret) > 512:
|
||||
print('message to long, skipped')
|
||||
elif len(ret.split('\n')) > 5:
|
||||
print('to many lines, skipped')
|
||||
else:
|
||||
if last.strip() != ret.strip():
|
||||
print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip()))
|
||||
if ret:
|
||||
d[usr] = ret
|
||||
|
||||
else:
|
||||
print("no last message")
|
||||
|
@ -2,16 +2,15 @@
|
||||
|
||||
python2Packages.buildPythonApplication rec {
|
||||
name = "buildbot-classic-${version}";
|
||||
version = "0.8.14";
|
||||
version = "0.8.16";
|
||||
namePrefix = "";
|
||||
patches = [];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "krebscode";
|
||||
repo = "buildbot-classic";
|
||||
# rev = "v${version}";
|
||||
rev = "843463911";
|
||||
sha256 = "1ybl52ybjw5p09yik6bck9i1pvnvg94i0d32zqrwy67s77yx1mfd";
|
||||
rev = version;
|
||||
sha256 = "0g686n6m0cjfyympl0ksansllx503gby3hx9gmc8hiyx6x5fkjha";
|
||||
};
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/master";
|
||||
|
||||
|
118
krebs/5pkgs/simple/ejabberd/default.nix
Normal file
118
krebs/5pkgs/simple/ejabberd/default.nix
Normal file
@ -0,0 +1,118 @@
|
||||
{ stdenv, writeScriptBin, lib, fetchurl, git, cacert
|
||||
, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps
|
||||
, withMysql ? false
|
||||
, withPgsql ? false
|
||||
, withSqlite ? false, sqlite
|
||||
, withPam ? false, pam
|
||||
, withZlib ? true, zlib
|
||||
, withRiak ? false
|
||||
, withElixir ? false, elixir
|
||||
, withIconv ? true
|
||||
, withTools ? false
|
||||
, withRedis ? false
|
||||
}:
|
||||
|
||||
let
|
||||
fakegit = writeScriptBin "git" ''
|
||||
#! ${stdenv.shell} -e
|
||||
if [ "$1" = "describe" ]; then
|
||||
[ -r .rev ] && cat .rev || true
|
||||
fi
|
||||
'';
|
||||
|
||||
ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ];
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
version = "17.07";
|
||||
name = "ejabberd-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
|
||||
sha256 = "1p8ppp2czjgnq8xnhyksd82npvvx99fwr0g3rrq1wvnwh2vgb8km";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ fakegit ];
|
||||
|
||||
buildInputs = [ erlang openssl expat libyaml ]
|
||||
++ lib.optional withSqlite sqlite
|
||||
++ lib.optional withPam pam
|
||||
++ lib.optional withZlib zlib
|
||||
++ lib.optional withElixir elixir
|
||||
;
|
||||
|
||||
# Apparently needed for Elixir
|
||||
LANG = "en_US.UTF-8";
|
||||
|
||||
deps = stdenv.mkDerivation {
|
||||
name = "ejabberd-deps-${version}";
|
||||
|
||||
inherit src;
|
||||
|
||||
configureFlags = [ "--enable-all" "--with-sqlite3=${sqlite.dev}" ];
|
||||
|
||||
buildInputs = [ git erlang openssl expat libyaml sqlite pam zlib elixir ];
|
||||
|
||||
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
|
||||
makeFlags = [ "deps" ];
|
||||
|
||||
phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
for i in deps/*; do
|
||||
( cd $i
|
||||
git reset --hard
|
||||
git clean -ffdx
|
||||
git describe --always --tags > .rev
|
||||
rm -rf .git
|
||||
)
|
||||
done
|
||||
rm deps/.got
|
||||
|
||||
cp -r deps $out
|
||||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "1q9yzccn4zf5i4hibq1r0i34q4986a93ph4792l1ph07aiisc8p7";
|
||||
};
|
||||
|
||||
configureFlags =
|
||||
[ (lib.enableFeature withMysql "mysql")
|
||||
(lib.enableFeature withPgsql "pgsql")
|
||||
(lib.enableFeature withSqlite "sqlite")
|
||||
(lib.enableFeature withPam "pam")
|
||||
(lib.enableFeature withZlib "zlib")
|
||||
(lib.enableFeature withRiak "riak")
|
||||
(lib.enableFeature withElixir "elixir")
|
||||
(lib.enableFeature withIconv "iconv")
|
||||
(lib.enableFeature withTools "tools")
|
||||
(lib.enableFeature withRedis "redis")
|
||||
] ++ lib.optional withSqlite "--with-sqlite3=${sqlite.dev}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preBuild = ''
|
||||
cp -r $deps deps
|
||||
chmod -R +w deps
|
||||
patchShebangs deps
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
sed -i \
|
||||
-e '2iexport PATH=${ctlpath}:$PATH' \
|
||||
-e 's,\(^ *FLOCK=\).*,\1${utillinux}/bin/flock,' \
|
||||
-e 's,\(^ *JOT=\).*,\1,' \
|
||||
-e 's,\(^ *CONNLOCKDIR=\).*,\1/var/lock/ejabberdctl,' \
|
||||
$out/sbin/ejabberdctl
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Open-source XMPP application server written in Erlang";
|
||||
license = lib.licenses.gpl2;
|
||||
homepage = http://www.ejabberd.im;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.sander lib.maintainers.abbradar ];
|
||||
broken = withElixir;
|
||||
};
|
||||
}
|
@ -1,25 +1,26 @@
|
||||
{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }:
|
||||
{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs-8_x, pkgs }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
np = (callPackage <nixpkgs/pkgs/top-level/node-packages.nix>) {
|
||||
generated = ./packages.nix;
|
||||
self = np;
|
||||
nodeEnv = import <nixpkgs/pkgs/development/node-packages/node-env.nix> {
|
||||
inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
|
||||
nodejs = nodejs-8_x;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
||||
};
|
||||
|
||||
node_env = buildEnv {
|
||||
name = "node_env";
|
||||
paths = [
|
||||
np.redis
|
||||
np."formidable"
|
||||
];
|
||||
pathsToLink = [ "/lib" ];
|
||||
ignoreCollisions = true;
|
||||
node_env = pkgs.buildEnv {
|
||||
name = "go-node_env";
|
||||
paths = attrValues (import ./node-packages.nix {
|
||||
inherit (pkgs) fetchurl fetchgit;
|
||||
inherit nodeEnv;
|
||||
});
|
||||
};
|
||||
|
||||
in np.buildNodePackage {
|
||||
in stdenv.mkDerivation {
|
||||
packageName = "go";
|
||||
name = "go-shortener";
|
||||
version = "0.0.0";
|
||||
|
||||
src = fetchgit {
|
||||
url = "http://cgit.lassul.us/go/";
|
||||
@ -32,10 +33,8 @@ in np.buildNodePackage {
|
||||
"installPhase"
|
||||
];
|
||||
|
||||
deps = (filter (v: nixType v == "derivation") (attrValues np));
|
||||
|
||||
buildInputs = [
|
||||
nodejs
|
||||
nodejs-8_x
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
@ -44,14 +43,14 @@ in np.buildNodePackage {
|
||||
|
||||
cp index.js $out/
|
||||
cat > $out/go << EOF
|
||||
${nodejs}/bin/node $out/index.js
|
||||
${nodejs-8_x}/bin/node $out/index.js
|
||||
EOF
|
||||
chmod +x $out/go
|
||||
|
||||
wrapProgram $out/go \
|
||||
--prefix NODE_PATH : ${node_env}/lib/node_modules
|
||||
|
||||
ln -s $out/go /$out/bin/go
|
||||
ln -s $out/go /$out/bin/go
|
||||
'';
|
||||
|
||||
}
|
||||
|
76
krebs/5pkgs/simple/go-shortener/node-packages.nix
Normal file
76
krebs/5pkgs/simple/go-shortener/node-packages.nix
Normal file
@ -0,0 +1,76 @@
|
||||
# This file has been generated by node2nix 1.5.3. Do not edit!
|
||||
|
||||
{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
|
||||
|
||||
let
|
||||
sources = {
|
||||
"double-ended-queue-2.1.0-0" = {
|
||||
name = "double-ended-queue";
|
||||
packageName = "double-ended-queue";
|
||||
version = "2.1.0-0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
|
||||
sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
|
||||
};
|
||||
};
|
||||
"redis-commands-1.3.5" = {
|
||||
name = "redis-commands";
|
||||
packageName = "redis-commands";
|
||||
version = "1.3.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz";
|
||||
sha512 = "2q8pai3gf0dczb03jjig3mpaz4j2kvw8icpgf8hp4fryr3d6c0mjkvxxdmlyhainybx4zhgqsw9ghc9p986alzdzd2n2p4cxvr8b0by";
|
||||
};
|
||||
};
|
||||
"redis-parser-2.6.0" = {
|
||||
name = "redis-parser";
|
||||
packageName = "redis-parser";
|
||||
version = "2.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz";
|
||||
sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
formidable = nodeEnv.buildNodePackage {
|
||||
name = "formidable";
|
||||
packageName = "formidable";
|
||||
version = "1.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz";
|
||||
sha512 = "1x0n2rfaiasdjbw1mm7s29z84f68c7iji7lb1gkxvpknvv6q7bwns7z55ijcf4vkh4kvis12rbgaaih49jf9lj53s30mllb1d35bkqn";
|
||||
};
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "A node.js module for parsing form data, especially file uploads.";
|
||||
homepage = https://github.com/felixge/node-formidable;
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
redis = nodeEnv.buildNodePackage {
|
||||
name = "redis";
|
||||
packageName = "redis";
|
||||
version = "2.8.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz";
|
||||
sha512 = "3a3044ax6qdvss83xgjfx10h5q91ls0mwgs3wpsnxcdsiipq3cnmqzsh6glyq0r7vsmpw49jp84c2jnfrhi2bgycrkd9hhhf6ia8lrk";
|
||||
};
|
||||
dependencies = [
|
||||
sources."double-ended-queue-2.1.0-0"
|
||||
sources."redis-commands-1.3.5"
|
||||
sources."redis-parser-2.6.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "Redis client library";
|
||||
homepage = https://github.com/NodeRedis/node_redis;
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
{ self, fetchurl, fetchgit ? null, lib }:
|
||||
|
||||
{
|
||||
by-spec."formidable"."*" =
|
||||
self.by-version."formidable"."1.0.17";
|
||||
by-version."formidable"."1.0.17" = self.buildNodePackage {
|
||||
name = "formidable-1.0.17";
|
||||
version = "1.0.17";
|
||||
bin = false;
|
||||
src = fetchurl {
|
||||
url = "http://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz";
|
||||
name = "formidable-1.0.17.tgz";
|
||||
sha1 = "ef5491490f9433b705faa77249c99029ae348559";
|
||||
};
|
||||
deps = {
|
||||
};
|
||||
optionalDependencies = {
|
||||
};
|
||||
peerDependencies = [];
|
||||
os = [ ];
|
||||
cpu = [ ];
|
||||
};
|
||||
"formidable" = self.by-version."formidable"."1.0.17";
|
||||
by-spec."redis"."*" =
|
||||
self.by-version."redis"."2.1.0";
|
||||
by-version."redis"."2.1.0" = self.buildNodePackage {
|
||||
name = "redis-2.1.0";
|
||||
version = "2.1.0";
|
||||
bin = false;
|
||||
src = fetchurl {
|
||||
url = "http://registry.npmjs.org/redis/-/redis-2.1.0.tgz";
|
||||
name = "redis-2.1.0.tgz";
|
||||
sha1 = "38acb208f90750250f9451219b73ff08ae907f94";
|
||||
};
|
||||
deps = {
|
||||
};
|
||||
optionalDependencies = {
|
||||
};
|
||||
peerDependencies = [];
|
||||
os = [ ];
|
||||
cpu = [ ];
|
||||
};
|
||||
"redis" = self.by-version."redis"."2.1.0";
|
||||
}
|
4
krebs/5pkgs/simple/go-shortener/pkgs.json
Normal file
4
krebs/5pkgs/simple/go-shortener/pkgs.json
Normal file
@ -0,0 +1,4 @@
|
||||
[
|
||||
"formidable",
|
||||
"redis"
|
||||
]
|
2
krebs/5pkgs/simple/go-shortener/update.sh
Executable file
2
krebs/5pkgs/simple/go-shortener/update.sh
Executable file
@ -0,0 +1,2 @@
|
||||
node2nix -8 -i pkgs.json -c combine.nix
|
||||
rm node-env.nix combine.nix
|
@ -1,7 +1,7 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
pkgs.writeDashBin "hashPassword" ''
|
||||
# usage: hashPassword
|
||||
# usage: hashPassword [...]
|
||||
set -euf
|
||||
|
||||
export PATH=${lib.makeBinPath (with pkgs; [
|
||||
@ -11,5 +11,5 @@ pkgs.writeDashBin "hashPassword" ''
|
||||
])}
|
||||
|
||||
salt=$(openssl rand -base64 16 | tr -d '+=' | head -c 16)
|
||||
exec mkpasswd -m sha-512 -S "$salt"
|
||||
exec mkpasswd -m sha-512 -S "$salt" "$@"
|
||||
''
|
||||
|
7
krebs/5pkgs/simple/kops.nix
Normal file
7
krebs/5pkgs/simple/kops.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ fetchgit, ... }:
|
||||
|
||||
fetchgit {
|
||||
url = https://cgit.krebsco.de/kops;
|
||||
rev = "refs/tags/v1.0.0";
|
||||
sha256 = "0wg8d80sxa46z4i7ir79sci2hwmv3qskzqdg0si64p6vazy8vckb";
|
||||
}
|
@ -1,27 +1,27 @@
|
||||
{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }:
|
||||
{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs-8_x, pkgs, icu }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
np = (callPackage <nixpkgs/pkgs/top-level/node-packages.nix>) {
|
||||
generated = ./packages.nix;
|
||||
self = np;
|
||||
nodeEnv = import <nixpkgs/pkgs/development/node-packages/node-env.nix> {
|
||||
inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
|
||||
nodejs = nodejs-8_x;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
||||
};
|
||||
|
||||
node_env = buildEnv {
|
||||
name = "node_env";
|
||||
paths = [
|
||||
np.feedparser
|
||||
np.form-data
|
||||
np.irc
|
||||
np.request
|
||||
np.shell-quote
|
||||
];
|
||||
pathsToLink = [ "/lib" ];
|
||||
ignoreCollisions = true;
|
||||
node_env = pkgs.buildEnv {
|
||||
name = "go-node_env";
|
||||
paths = attrValues (import ./node-packages.nix {
|
||||
inherit (pkgs) fetchurl fetchgit;
|
||||
inherit nodeEnv;
|
||||
globalBuildInputs = [
|
||||
icu.dev
|
||||
];
|
||||
});
|
||||
};
|
||||
|
||||
in np.buildNodePackage {
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "newsbot-js";
|
||||
|
||||
src = fetchgit {
|
||||
@ -32,14 +32,11 @@ in np.buildNodePackage {
|
||||
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"patchPhase"
|
||||
"installPhase"
|
||||
];
|
||||
|
||||
deps = (filter (v: nixType v == "derivation") (attrValues np));
|
||||
|
||||
buildInputs = [
|
||||
nodejs
|
||||
nodejs-8_x
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
@ -48,7 +45,7 @@ in np.buildNodePackage {
|
||||
|
||||
cp newsbot.js $out/
|
||||
cat > $out/newsbot << EOF
|
||||
${nodejs}/bin/node $out/newsbot.js
|
||||
${nodejs-8_x}/bin/node $out/newsbot.js
|
||||
EOF
|
||||
chmod +x $out/newsbot
|
||||
|
||||
|
844
krebs/5pkgs/simple/newsbot-js/node-packages.nix
Normal file
844
krebs/5pkgs/simple/newsbot-js/node-packages.nix
Normal file
@ -0,0 +1,844 @@
|
||||
# This file has been generated by node2nix 1.5.3. Do not edit!
|
||||
|
||||
{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
|
||||
|
||||
let
|
||||
sources = {
|
||||
"addressparser-1.0.1" = {
|
||||
name = "addressparser";
|
||||
packageName = "addressparser";
|
||||
version = "1.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz";
|
||||
sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746";
|
||||
};
|
||||
};
|
||||
"ajv-5.5.2" = {
|
||||
name = "ajv";
|
||||
packageName = "ajv";
|
||||
version = "5.5.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz";
|
||||
sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
|
||||
};
|
||||
};
|
||||
"array-filter-0.0.1" = {
|
||||
name = "array-filter";
|
||||
packageName = "array-filter";
|
||||
version = "0.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz";
|
||||
sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
|
||||
};
|
||||
};
|
||||
"array-indexofobject-0.0.1" = {
|
||||
name = "array-indexofobject";
|
||||
packageName = "array-indexofobject";
|
||||
version = "0.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz";
|
||||
sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a";
|
||||
};
|
||||
};
|
||||
"array-map-0.0.0" = {
|
||||
name = "array-map";
|
||||
packageName = "array-map";
|
||||
version = "0.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz";
|
||||
sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
|
||||
};
|
||||
};
|
||||
"array-reduce-0.0.0" = {
|
||||
name = "array-reduce";
|
||||
packageName = "array-reduce";
|
||||
version = "0.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz";
|
||||
sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
|
||||
};
|
||||
};
|
||||
"asn1-0.2.3" = {
|
||||
name = "asn1";
|
||||
packageName = "asn1";
|
||||
version = "0.2.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
|
||||
sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
|
||||
};
|
||||
};
|
||||
"assert-plus-1.0.0" = {
|
||||
name = "assert-plus";
|
||||
packageName = "assert-plus";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
|
||||
sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
|
||||
};
|
||||
};
|
||||
"asynckit-0.4.0" = {
|
||||
name = "asynckit";
|
||||
packageName = "asynckit";
|
||||
version = "0.4.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
|
||||
sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
|
||||
};
|
||||
};
|
||||
"aws-sign2-0.7.0" = {
|
||||
name = "aws-sign2";
|
||||
packageName = "aws-sign2";
|
||||
version = "0.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
|
||||
sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
|
||||
};
|
||||
};
|
||||
"aws4-1.6.0" = {
|
||||
name = "aws4";
|
||||
packageName = "aws4";
|
||||
version = "1.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz";
|
||||
sha1 = "83ef5ca860b2b32e4a0deedee8c771b9db57471e";
|
||||
};
|
||||
};
|
||||
"bcrypt-pbkdf-1.0.1" = {
|
||||
name = "bcrypt-pbkdf";
|
||||
packageName = "bcrypt-pbkdf";
|
||||
version = "1.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz";
|
||||
sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d";
|
||||
};
|
||||
};
|
||||
"boom-4.3.1" = {
|
||||
name = "boom";
|
||||
packageName = "boom";
|
||||
version = "4.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz";
|
||||
sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31";
|
||||
};
|
||||
};
|
||||
"boom-5.2.0" = {
|
||||
name = "boom";
|
||||
packageName = "boom";
|
||||
version = "5.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz";
|
||||
sha512 = "19h20yqpvca08dns1rs4f057f10w63v0snxfml4h5khsk266x3x1im0w72bza4k2xn0kfz6jlv001dhcvxsjr09bmbqnysils9m7437";
|
||||
};
|
||||
};
|
||||
"caseless-0.12.0" = {
|
||||
name = "caseless";
|
||||
packageName = "caseless";
|
||||
version = "0.12.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
|
||||
sha1 = "1b681c21ff84033c826543090689420d187151dc";
|
||||
};
|
||||
};
|
||||
"co-4.6.0" = {
|
||||
name = "co";
|
||||
packageName = "co";
|
||||
version = "4.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
|
||||
sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
|
||||
};
|
||||
};
|
||||
"combined-stream-1.0.6" = {
|
||||
name = "combined-stream";
|
||||
packageName = "combined-stream";
|
||||
version = "1.0.6";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz";
|
||||
sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818";
|
||||
};
|
||||
};
|
||||
"core-util-is-1.0.2" = {
|
||||
name = "core-util-is";
|
||||
packageName = "core-util-is";
|
||||
version = "1.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
|
||||
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
|
||||
};
|
||||
};
|
||||
"cryptiles-3.1.2" = {
|
||||
name = "cryptiles";
|
||||
packageName = "cryptiles";
|
||||
version = "3.1.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz";
|
||||
sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe";
|
||||
};
|
||||
};
|
||||
"dashdash-1.14.1" = {
|
||||
name = "dashdash";
|
||||
packageName = "dashdash";
|
||||
version = "1.14.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
|
||||
sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
|
||||
};
|
||||
};
|
||||
"delayed-stream-1.0.0" = {
|
||||
name = "delayed-stream";
|
||||
packageName = "delayed-stream";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
|
||||
sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
|
||||
};
|
||||
};
|
||||
"ecc-jsbn-0.1.1" = {
|
||||
name = "ecc-jsbn";
|
||||
packageName = "ecc-jsbn";
|
||||
version = "0.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
|
||||
sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
|
||||
};
|
||||
};
|
||||
"extend-3.0.1" = {
|
||||
name = "extend";
|
||||
packageName = "extend";
|
||||
version = "3.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz";
|
||||
sha1 = "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444";
|
||||
};
|
||||
};
|
||||
"extsprintf-1.3.0" = {
|
||||
name = "extsprintf";
|
||||
packageName = "extsprintf";
|
||||
version = "1.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
|
||||
sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
|
||||
};
|
||||
};
|
||||
"fast-deep-equal-1.1.0" = {
|
||||
name = "fast-deep-equal";
|
||||
packageName = "fast-deep-equal";
|
||||
version = "1.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz";
|
||||
sha1 = "c053477817c86b51daa853c81e059b733d023614";
|
||||
};
|
||||
};
|
||||
"fast-json-stable-stringify-2.0.0" = {
|
||||
name = "fast-json-stable-stringify";
|
||||
packageName = "fast-json-stable-stringify";
|
||||
version = "2.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
|
||||
sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
|
||||
};
|
||||
};
|
||||
"forever-agent-0.6.1" = {
|
||||
name = "forever-agent";
|
||||
packageName = "forever-agent";
|
||||
version = "0.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
|
||||
sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
|
||||
};
|
||||
};
|
||||
"form-data-2.3.2" = {
|
||||
name = "form-data";
|
||||
packageName = "form-data";
|
||||
version = "2.3.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz";
|
||||
sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099";
|
||||
};
|
||||
};
|
||||
"getpass-0.1.7" = {
|
||||
name = "getpass";
|
||||
packageName = "getpass";
|
||||
version = "0.1.7";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
|
||||
sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
|
||||
};
|
||||
};
|
||||
"har-schema-2.0.0" = {
|
||||
name = "har-schema";
|
||||
packageName = "har-schema";
|
||||
version = "2.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
|
||||
sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
|
||||
};
|
||||
};
|
||||
"har-validator-5.0.3" = {
|
||||
name = "har-validator";
|
||||
packageName = "har-validator";
|
||||
version = "5.0.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz";
|
||||
sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
|
||||
};
|
||||
};
|
||||
"hawk-6.0.2" = {
|
||||
name = "hawk";
|
||||
packageName = "hawk";
|
||||
version = "6.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz";
|
||||
sha512 = "1nl2hjr2mnhj5jlaz8mh54z7acwz5j5idkch04qgjk78756gw5d0fjk4a2immil5ij9ijdssb9ndpryvnh2xpcbgcjv8lxybn330als";
|
||||
};
|
||||
};
|
||||
"hoek-4.2.1" = {
|
||||
name = "hoek";
|
||||
packageName = "hoek";
|
||||
version = "4.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz";
|
||||
sha512 = "1y8kprb3qldxqj31zai5n8dvhydsl9nn5w4rskhnbzzhldn6pm6n5lcyam3sfkb61a62d5m58k8im7z6ngwbd9cw9zp4zm4y7ckrf20";
|
||||
};
|
||||
};
|
||||
"http-signature-1.2.0" = {
|
||||
name = "http-signature";
|
||||
packageName = "http-signature";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
|
||||
sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
|
||||
};
|
||||
};
|
||||
"iconv-2.2.3" = {
|
||||
name = "iconv";
|
||||
packageName = "iconv";
|
||||
version = "2.2.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/iconv/-/iconv-2.2.3.tgz";
|
||||
sha1 = "e084d60eeb7d73da7f0a9c096e4c8abe090bfaed";
|
||||
};
|
||||
};
|
||||
"inherits-2.0.3" = {
|
||||
name = "inherits";
|
||||
packageName = "inherits";
|
||||
version = "2.0.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
|
||||
sha1 = "633c2c83e3da42a502f52466022480f4208261de";
|
||||
};
|
||||
};
|
||||
"irc-colors-1.4.2" = {
|
||||
name = "irc-colors";
|
||||
packageName = "irc-colors";
|
||||
version = "1.4.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.4.2.tgz";
|
||||
sha512 = "0f75yhavbhr8lbh3lh83rvyfrrrcxjawnd2rz7sacjd3zxj5524xr28j66f2l11vlngdkbplxz5xsq9dnwrcyqa0jh64k2pvzhn17a1";
|
||||
};
|
||||
};
|
||||
"is-typedarray-1.0.0" = {
|
||||
name = "is-typedarray";
|
||||
packageName = "is-typedarray";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
|
||||
sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
|
||||
};
|
||||
};
|
||||
"isarray-1.0.0" = {
|
||||
name = "isarray";
|
||||
packageName = "isarray";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
|
||||
sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
|
||||
};
|
||||
};
|
||||
"isstream-0.1.2" = {
|
||||
name = "isstream";
|
||||
packageName = "isstream";
|
||||
version = "0.1.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
|
||||
sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
|
||||
};
|
||||
};
|
||||
"jsbn-0.1.1" = {
|
||||
name = "jsbn";
|
||||
packageName = "jsbn";
|
||||
version = "0.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
|
||||
sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
|
||||
};
|
||||
};
|
||||
"json-schema-0.2.3" = {
|
||||
name = "json-schema";
|
||||
packageName = "json-schema";
|
||||
version = "0.2.3";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
|
||||
sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
|
||||
};
|
||||
};
|
||||
"json-schema-traverse-0.3.1" = {
|
||||
name = "json-schema-traverse";
|
||||
packageName = "json-schema-traverse";
|
||||
version = "0.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
|
||||
sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
|
||||
};
|
||||
};
|
||||
"json-stringify-safe-5.0.1" = {
|
||||
name = "json-stringify-safe";
|
||||
packageName = "json-stringify-safe";
|
||||
version = "5.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
|
||||
sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
|
||||
};
|
||||
};
|
||||
"jsonify-0.0.0" = {
|
||||
name = "jsonify";
|
||||
packageName = "jsonify";
|
||||
version = "0.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
|
||||
sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
|
||||
};
|
||||
};
|
||||
"jsprim-1.4.1" = {
|
||||
name = "jsprim";
|
||||
packageName = "jsprim";
|
||||
version = "1.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
|
||||
sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
|
||||
};
|
||||
};
|
||||
"lodash.assign-4.2.0" = {
|
||||
name = "lodash.assign";
|
||||
packageName = "lodash.assign";
|
||||
version = "4.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz";
|
||||
sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
|
||||
};
|
||||
};
|
||||
"lodash.get-4.4.2" = {
|
||||
name = "lodash.get";
|
||||
packageName = "lodash.get";
|
||||
version = "4.4.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
|
||||
sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
|
||||
};
|
||||
};
|
||||
"lodash.has-4.5.2" = {
|
||||
name = "lodash.has";
|
||||
packageName = "lodash.has";
|
||||
version = "4.5.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz";
|
||||
sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862";
|
||||
};
|
||||
};
|
||||
"lodash.uniq-4.5.0" = {
|
||||
name = "lodash.uniq";
|
||||
packageName = "lodash.uniq";
|
||||
version = "4.5.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
|
||||
sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
|
||||
};
|
||||
};
|
||||
"mime-db-1.33.0" = {
|
||||
name = "mime-db";
|
||||
packageName = "mime-db";
|
||||
version = "1.33.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz";
|
||||
sha512 = "36xnw59ik9fqym00cmwb5nyzg0l03k70cp413f7639j93wgmzk1mh0xjc7i6zz3r6k9xnwh0g5cm5a1f3y8c6plgy4qld7fm887ywh4";
|
||||
};
|
||||
};
|
||||
"mime-types-2.1.18" = {
|
||||
name = "mime-types";
|
||||
packageName = "mime-types";
|
||||
version = "2.1.18";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz";
|
||||
sha512 = "22krj1kw7n9z10zdyx7smcaim4bzwqsqzhspwha06q58gcrxfp93hw2cd0vk5crhq5p2dwzqlpacg32lrmp5sjzb798zdzy35mdmkwm";
|
||||
};
|
||||
};
|
||||
"mri-1.1.0" = {
|
||||
name = "mri";
|
||||
packageName = "mri";
|
||||
version = "1.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz";
|
||||
sha1 = "5c0a3f29c8ccffbbb1ec941dcec09d71fa32f36a";
|
||||
};
|
||||
};
|
||||
"nan-2.10.0" = {
|
||||
name = "nan";
|
||||
packageName = "nan";
|
||||
version = "2.10.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz";
|
||||
sha512 = "349rr7x0djrlkav4gbhkg355852ingn965r0kkch8rr4cwp7qki9676zpq8cq988yszzd2hld6szsbbnd1v6rghzf11abn1nyzlj1vc";
|
||||
};
|
||||
};
|
||||
"node-icu-charset-detector-0.2.0" = {
|
||||
name = "node-icu-charset-detector";
|
||||
packageName = "node-icu-charset-detector";
|
||||
version = "0.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/node-icu-charset-detector/-/node-icu-charset-detector-0.2.0.tgz";
|
||||
sha1 = "c2320da374ddcb671fc54cb4a0e041e156ffd639";
|
||||
};
|
||||
};
|
||||
"oauth-sign-0.8.2" = {
|
||||
name = "oauth-sign";
|
||||
packageName = "oauth-sign";
|
||||
version = "0.8.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz";
|
||||
sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
|
||||
};
|
||||
};
|
||||
"performance-now-2.1.0" = {
|
||||
name = "performance-now";
|
||||
packageName = "performance-now";
|
||||
version = "2.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
|
||||
sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
|
||||
};
|
||||
};
|
||||
"process-nextick-args-2.0.0" = {
|
||||
name = "process-nextick-args";
|
||||
packageName = "process-nextick-args";
|
||||
version = "2.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
|
||||
sha512 = "0rw8xpqqkhs91722slvzf8icxfaimqp4w8zb3840jxr7r8n8035byl6dhdi5bm0yr6x7sdws0gf3m025fg6hqgaklwlbl4d7bah5l9j";
|
||||
};
|
||||
};
|
||||
"punycode-1.4.1" = {
|
||||
name = "punycode";
|
||||
packageName = "punycode";
|
||||
version = "1.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
|
||||
sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
|
||||
};
|
||||
};
|
||||
"qs-6.5.1" = {
|
||||
name = "qs";
|
||||
packageName = "qs";
|
||||
version = "6.5.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
|
||||
sha512 = "3waqapyj1k4g135sgj636rmswiaixq19is1rw0rpv4qp6k7dl0a9nwy06m7yl5lbdk9p6xpwwngnggbzlzaz6rh11c86j2nvnnf273r";
|
||||
};
|
||||
};
|
||||
"readable-stream-2.3.6" = {
|
||||
name = "readable-stream";
|
||||
packageName = "readable-stream";
|
||||
version = "2.3.6";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz";
|
||||
sha512 = "0mj9b6190amln9rg89x5pq2n195s3v0gzicpdamv1kbabg69aw5m71l34jsjn7bqil7405l6l35x9ijnb3h4jz5vx2i00l8sl1ll2xm";
|
||||
};
|
||||
};
|
||||
"safe-buffer-5.1.1" = {
|
||||
name = "safe-buffer";
|
||||
packageName = "safe-buffer";
|
||||
version = "5.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz";
|
||||
sha512 = "1p28rllll1w65yzq5azi4izx962399xdsdlfbaynn7vmp981hiss05jhiy9hm7sbbfk3b4dhlcv0zy07fc59mnc07hdv6wcgqkcvawh";
|
||||
};
|
||||
};
|
||||
"sax-1.2.4" = {
|
||||
name = "sax";
|
||||
packageName = "sax";
|
||||
version = "1.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
|
||||
sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
|
||||
};
|
||||
};
|
||||
"sntp-2.1.0" = {
|
||||
name = "sntp";
|
||||
packageName = "sntp";
|
||||
version = "2.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz";
|
||||
sha512 = "0k2smmr24w5hb1cpql6vcgh58vzp4pmh9anf0bgz3arlsgq1mapnlq9fjqr6xs10aq1cmxaw987fwknqi62frax0fvs9bj3q3kmpg8l";
|
||||
};
|
||||
};
|
||||
"sshpk-1.14.1" = {
|
||||
name = "sshpk";
|
||||
packageName = "sshpk";
|
||||
version = "1.14.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz";
|
||||
sha1 = "130f5975eddad963f1d56f92b9ac6c51fa9f83eb";
|
||||
};
|
||||
};
|
||||
"string_decoder-1.1.1" = {
|
||||
name = "string_decoder";
|
||||
packageName = "string_decoder";
|
||||
version = "1.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
|
||||
sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
|
||||
};
|
||||
};
|
||||
"stringstream-0.0.5" = {
|
||||
name = "stringstream";
|
||||
packageName = "stringstream";
|
||||
version = "0.0.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz";
|
||||
sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
|
||||
};
|
||||
};
|
||||
"tough-cookie-2.3.4" = {
|
||||
name = "tough-cookie";
|
||||
packageName = "tough-cookie";
|
||||
version = "2.3.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz";
|
||||
sha512 = "0ncm6j3cjq1f26mzjf04k9bkw1b08w53s4qa3a11c1bdj4pgnqv1422c1xs5jyy6y1psppjx52fhagq5zkjkgrcpdkxcdiry96r77jd";
|
||||
};
|
||||
};
|
||||
"tunnel-agent-0.6.0" = {
|
||||
name = "tunnel-agent";
|
||||
packageName = "tunnel-agent";
|
||||
version = "0.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
|
||||
sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
|
||||
};
|
||||
};
|
||||
"tweetnacl-0.14.5" = {
|
||||
name = "tweetnacl";
|
||||
packageName = "tweetnacl";
|
||||
version = "0.14.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
|
||||
sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
|
||||
};
|
||||
};
|
||||
"util-deprecate-1.0.2" = {
|
||||
name = "util-deprecate";
|
||||
packageName = "util-deprecate";
|
||||
version = "1.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
|
||||
sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
|
||||
};
|
||||
};
|
||||
"uuid-3.2.1" = {
|
||||
name = "uuid";
|
||||
packageName = "uuid";
|
||||
version = "3.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz";
|
||||
sha512 = "0843vl1c974n8kw5kn0kvhvhwk8y8jydr0xkwwl2963xxmkw4ingk6xj9c8m48jw2i95giglxzq5aw5v5mij9kv7fzln8pxav1cr6cd";
|
||||
};
|
||||
};
|
||||
"verror-1.10.0" = {
|
||||
name = "verror";
|
||||
packageName = "verror";
|
||||
version = "1.10.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
|
||||
sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
feedparser = nodeEnv.buildNodePackage {
|
||||
name = "feedparser";
|
||||
packageName = "feedparser";
|
||||
version = "2.2.9";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz";
|
||||
sha1 = "9138197dafdae05fcadde0036beeaf6066c2c5e9";
|
||||
};
|
||||
dependencies = [
|
||||
sources."addressparser-1.0.1"
|
||||
sources."array-indexofobject-0.0.1"
|
||||
sources."core-util-is-1.0.2"
|
||||
sources."inherits-2.0.3"
|
||||
sources."isarray-1.0.0"
|
||||
sources."lodash.assign-4.2.0"
|
||||
sources."lodash.get-4.4.2"
|
||||
sources."lodash.has-4.5.2"
|
||||
sources."lodash.uniq-4.5.0"
|
||||
sources."mri-1.1.0"
|
||||
sources."process-nextick-args-2.0.0"
|
||||
sources."readable-stream-2.3.6"
|
||||
sources."safe-buffer-5.1.1"
|
||||
sources."sax-1.2.4"
|
||||
sources."string_decoder-1.1.1"
|
||||
sources."util-deprecate-1.0.2"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "Robust RSS Atom and RDF feed parsing using sax js";
|
||||
homepage = http://github.com/danmactough/node-feedparser;
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
form-data = nodeEnv.buildNodePackage {
|
||||
name = "form-data";
|
||||
packageName = "form-data";
|
||||
version = "2.3.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz";
|
||||
sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099";
|
||||
};
|
||||
dependencies = [
|
||||
sources."asynckit-0.4.0"
|
||||
sources."combined-stream-1.0.6"
|
||||
sources."delayed-stream-1.0.0"
|
||||
sources."mime-db-1.33.0"
|
||||
sources."mime-types-2.1.18"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.";
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
irc = nodeEnv.buildNodePackage {
|
||||
name = "irc";
|
||||
packageName = "irc";
|
||||
version = "0.5.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz";
|
||||
sha1 = "3714f4768365a96d0b2f776bc91166beb2464bbc";
|
||||
};
|
||||
dependencies = [
|
||||
sources."iconv-2.2.3"
|
||||
sources."irc-colors-1.4.2"
|
||||
sources."nan-2.10.0"
|
||||
sources."node-icu-charset-detector-0.2.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "An IRC client library for node";
|
||||
homepage = "https://github.com/martynsmith/node-irc#readme";
|
||||
license = "GPL-3.0";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
request = nodeEnv.buildNodePackage {
|
||||
name = "request";
|
||||
packageName = "request";
|
||||
version = "2.85.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/request/-/request-2.85.0.tgz";
|
||||
sha512 = "2d3hg10zs5ycnr8prmiwdhacf88fl0x0bi6szs0z2r07zcbk419laixwpjp8sqapbc2ifyyih7p3r60wgr58bmcncz3pqnx523c8zph";
|
||||
};
|
||||
dependencies = [
|
||||
sources."ajv-5.5.2"
|
||||
sources."asn1-0.2.3"
|
||||
sources."assert-plus-1.0.0"
|
||||
sources."asynckit-0.4.0"
|
||||
sources."aws-sign2-0.7.0"
|
||||
sources."aws4-1.6.0"
|
||||
sources."bcrypt-pbkdf-1.0.1"
|
||||
sources."boom-4.3.1"
|
||||
sources."caseless-0.12.0"
|
||||
sources."co-4.6.0"
|
||||
sources."combined-stream-1.0.6"
|
||||
sources."core-util-is-1.0.2"
|
||||
(sources."cryptiles-3.1.2" // {
|
||||
dependencies = [
|
||||
sources."boom-5.2.0"
|
||||
];
|
||||
})
|
||||
sources."dashdash-1.14.1"
|
||||
sources."delayed-stream-1.0.0"
|
||||
sources."ecc-jsbn-0.1.1"
|
||||
sources."extend-3.0.1"
|
||||
sources."extsprintf-1.3.0"
|
||||
sources."fast-deep-equal-1.1.0"
|
||||
sources."fast-json-stable-stringify-2.0.0"
|
||||
sources."forever-agent-0.6.1"
|
||||
sources."form-data-2.3.2"
|
||||
sources."getpass-0.1.7"
|
||||
sources."har-schema-2.0.0"
|
||||
sources."har-validator-5.0.3"
|
||||
sources."hawk-6.0.2"
|
||||
sources."hoek-4.2.1"
|
||||
sources."http-signature-1.2.0"
|
||||
sources."is-typedarray-1.0.0"
|
||||
sources."isstream-0.1.2"
|
||||
sources."jsbn-0.1.1"
|
||||
sources."json-schema-0.2.3"
|
||||
sources."json-schema-traverse-0.3.1"
|
||||
sources."json-stringify-safe-5.0.1"
|
||||
sources."jsprim-1.4.1"
|
||||
sources."mime-db-1.33.0"
|
||||
sources."mime-types-2.1.18"
|
||||
sources."oauth-sign-0.8.2"
|
||||
sources."performance-now-2.1.0"
|
||||
sources."punycode-1.4.1"
|
||||
sources."qs-6.5.1"
|
||||
sources."safe-buffer-5.1.1"
|
||||
sources."sntp-2.1.0"
|
||||
sources."sshpk-1.14.1"
|
||||
sources."stringstream-0.0.5"
|
||||
sources."tough-cookie-2.3.4"
|
||||
sources."tunnel-agent-0.6.0"
|
||||
sources."tweetnacl-0.14.5"
|
||||
sources."uuid-3.2.1"
|
||||
sources."verror-1.10.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "Simplified HTTP request client.";
|
||||
homepage = "https://github.com/request/request#readme";
|
||||
license = "Apache-2.0";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
shell-quote = nodeEnv.buildNodePackage {
|
||||
name = "shell-quote";
|
||||
packageName = "shell-quote";
|
||||
version = "1.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz";
|
||||
sha1 = "f4781949cce402697127430ea3b3c5476f481767";
|
||||
};
|
||||
dependencies = [
|
||||
sources."array-filter-0.0.1"
|
||||
sources."array-map-0.0.0"
|
||||
sources."array-reduce-0.0.0"
|
||||
sources."jsonify-0.0.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "quote and parse shell commands";
|
||||
homepage = "https://github.com/substack/node-shell-quote#readme";
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load Diff
7
krebs/5pkgs/simple/newsbot-js/pkgs.json
Normal file
7
krebs/5pkgs/simple/newsbot-js/pkgs.json
Normal file
@ -0,0 +1,7 @@
|
||||
[
|
||||
"feedparser",
|
||||
"form-data",
|
||||
"irc",
|
||||
"request",
|
||||
"shell-quote"
|
||||
]
|
2
krebs/5pkgs/simple/newsbot-js/update.sh
Executable file
2
krebs/5pkgs/simple/newsbot-js/update.sh
Executable file
@ -0,0 +1,2 @@
|
||||
node2nix -8 -i pkgs.json -c combine.nix
|
||||
rm node-env.nix combine.nix
|
@ -9,7 +9,6 @@
|
||||
#
|
||||
|
||||
cmds.deploy = pkgs.withGetopt {
|
||||
diff = { default = /* sh */ "false"; switch = true; };
|
||||
force-populate = { default = /* sh */ "false"; switch = true; };
|
||||
quiet = { default = /* sh */ "false"; switch = true; };
|
||||
source_file = {
|
||||
@ -25,65 +24,6 @@
|
||||
. ${init.env}
|
||||
. ${init.proxy "deploy" opts}
|
||||
|
||||
if \test ${opts.diff.ref} = true; then
|
||||
|
||||
system_profile=/nix/var/nix/profiles/system
|
||||
system_drv_cur=/etc/system.drv
|
||||
|
||||
system_drv_new=$(
|
||||
${pkgs.nix}/bin/nix-instantiate \
|
||||
-Q \
|
||||
-I "$target_path" \
|
||||
-E '
|
||||
(import <nixpkgs/nixos/lib/eval-config.nix> {
|
||||
modules = [ <nixos-config> ];
|
||||
}).config.system.build.toplevel
|
||||
'
|
||||
)
|
||||
|
||||
if \test -e "$system_drv_cur"; then
|
||||
|
||||
system_drv_cur_c=$(${pkgs.coreutils}/bin/readlink -f "$system_drv_cur")
|
||||
system_drv_new_c=$(${pkgs.coreutils}/bin/readlink -f "$system_drv_new")
|
||||
|
||||
if \test "$system_drv_cur_c" = "$system_drv_new_c"; then
|
||||
echo "$0: system up to date" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
system_drv_cur=$system_drv_cur_c \
|
||||
system_drv_new=$system_drv_new_c \
|
||||
${pkgs.utillinux}/bin/script \
|
||||
--command '
|
||||
${pkgs.haskellPackages.nix-diff}/bin/nix-diff \
|
||||
"$system_drv_cur" "$system_drv_new"
|
||||
' \
|
||||
--quiet \
|
||||
--return \
|
||||
/dev/null
|
||||
|
||||
printf 'deploy? [N/y] ' >&2
|
||||
read -r REPLY
|
||||
if \test "$REPLY" != y; then
|
||||
echo "$0: abort!" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "$0: --${opts.diff.long} has no effect because "$system_drv_cur" doesn't exist" >&2
|
||||
fi
|
||||
|
||||
new_system=$(${pkgs.nix}/bin/nix-store --realize "$system_drv_new")
|
||||
|
||||
${pkgs.nix}/bin/nix-env -p "$system_profile" --set "$new_system"
|
||||
PATH=${lib.makeBinPath [
|
||||
pkgs.systemd
|
||||
]} \
|
||||
"$system_profile"/bin/switch-to-configuration switch
|
||||
|
||||
${pkgs.coreutils}/bin/ln -fns "$system_drv_new" "$system_drv_cur"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Use system's nixos-rebuild, which is not self-contained
|
||||
export PATH=/run/current-system/sw/bin
|
||||
exec ${utils.with-whatsupnix} \
|
||||
|
@ -1,83 +0,0 @@
|
||||
{ stdenv
|
||||
, atk
|
||||
, bzip2
|
||||
, cairo
|
||||
, fetchurl
|
||||
, fluidsynth
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gdk_pixbuf
|
||||
, glib
|
||||
, gtk2
|
||||
, libjpeg_turbo
|
||||
, mesa_glu
|
||||
, mesa_noglu
|
||||
, openssl
|
||||
, pango
|
||||
, SDL
|
||||
, zlib
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "zandronum-3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://zandronum.com/downloads/testing/3.0/ZandroDev3.0-170205-2117linux-x86_64.tar.bz2";
|
||||
sha256 = "17vrzk0m5b17sp3sqcg57r7812ma97lp3qxn9hmd39fwl1z40fz3";
|
||||
};
|
||||
|
||||
libPath = stdenv.lib.makeLibraryPath [
|
||||
atk
|
||||
bzip2
|
||||
cairo
|
||||
fluidsynth
|
||||
fontconfig
|
||||
freetype
|
||||
gdk_pixbuf
|
||||
glib
|
||||
gtk2
|
||||
libjpeg_turbo
|
||||
mesa_glu
|
||||
mesa_noglu
|
||||
openssl
|
||||
pango
|
||||
SDL
|
||||
stdenv.cc.cc
|
||||
zlib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share/zandronum
|
||||
cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum
|
||||
|
||||
patchelf \
|
||||
--set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
|
||||
--set-rpath $libPath:$out/share/zandronum \
|
||||
$out/share/zandronum/zandronum
|
||||
patchelf \
|
||||
--set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
|
||||
--set-rpath $libPath \
|
||||
$out/share/zandronum/zandronum-server
|
||||
|
||||
# If we don't set absolute argv0, zandronum.wad file is not found.
|
||||
makeWrapper $out/share/zandronum/zandronum $out/bin/zandronum
|
||||
makeWrapper $out/share/zandronum/zandronum-server $out/bin/zandronum-server
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://zandronum.com/;
|
||||
description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play";
|
||||
maintainers = [ stdenv.lib.maintainers.lassulus ];
|
||||
# Binary version has different version string than source code version.
|
||||
license = stdenv.lib.licenses.unfreeRedistributable;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
@ -57,7 +57,8 @@ with import <stockholm/lib>;
|
||||
passAsFile = [ "text" ];
|
||||
} /* sh */ ''
|
||||
PATH=${makeBinPath (with pkgs; [
|
||||
binutils
|
||||
# TODO remove if everyone migrated to 18.03
|
||||
(if hasAttr "binutils-unwrapped" pkgs then binutils-unwrapped else binutils)
|
||||
coreutils
|
||||
gcc
|
||||
])}
|
||||
|
64
krebs/kops.nix
Normal file
64
krebs/kops.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ name }: rec {
|
||||
|
||||
kops = (import <nixpkgs> {}).fetchgit {
|
||||
url = https://cgit.krebsco.de/kops/;
|
||||
rev = "e89cf20d4310070a877c2e24a287659546b561c9";
|
||||
sha256 = "0wg8d80sxa46z4i7ir79sci2hwmv3qskzqdg0si64p6vazy8vckb";
|
||||
};
|
||||
|
||||
lib = import "${kops}/lib";
|
||||
|
||||
# TODO document why pkgs should be used like this
|
||||
pkgs = import "${kops}/pkgs" {};
|
||||
|
||||
krebs-source = {
|
||||
nixpkgs.git = {
|
||||
ref = "4b4bbce199d3b3a8001ee93495604289b01aaad3";
|
||||
url = https://github.com/NixOS/nixpkgs;
|
||||
};
|
||||
stockholm.file = toString ../.;
|
||||
stockholm-version.pipe = toString (pkgs.writeDash "${name}-version" ''
|
||||
set -efu
|
||||
cd $HOME/stockholm
|
||||
V=$(${pkgs.coreutils}/bin/date +%y.%m)
|
||||
if test -d .git; then
|
||||
V=$V.git.$(${pkgs.git}/bin/git describe --always --dirty)
|
||||
case $V in (*-dirty)
|
||||
V=$V@''${HOSTNAME-$(${pkgs.nettools}/bin/hostname)}
|
||||
esac
|
||||
fi
|
||||
printf %s "$V"
|
||||
'');
|
||||
};
|
||||
|
||||
source ={ test }: lib.evalSource [
|
||||
krebs-source
|
||||
{
|
||||
nixos-config.symlink = "stockholm/krebs/1systems/${name}/config.nix";
|
||||
secrets =
|
||||
if test
|
||||
then {
|
||||
file = toString <stockholm/krebs/6tests/data/secrets>;
|
||||
}
|
||||
else {
|
||||
pass = {
|
||||
dir = "${lib.getEnv "HOME"}/brain";
|
||||
name = "krebs-secrets/${name}";
|
||||
};
|
||||
}
|
||||
;
|
||||
}
|
||||
];
|
||||
|
||||
# usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy)
|
||||
deploy = pkgs.kops.writeDeploy "${name}-deploy" {
|
||||
source = source { test = false; };
|
||||
target = "root@${name}/var/src";
|
||||
};
|
||||
|
||||
# usage: $(nix-build --no-out-link --argstr name HOSTNAME -A test)
|
||||
test = pkgs.kops.writeTest "${name}-test" {
|
||||
source = source { test = true; };
|
||||
target = "${lib.getEnv "HOME"}/tmp/${name}-kops-test-src";
|
||||
};
|
||||
}
|
@ -22,10 +22,7 @@ in
|
||||
};
|
||||
stockholm.file = toString <stockholm>;
|
||||
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||
nixpkgs.git = {
|
||||
url = https://github.com/NixOS/nixpkgs;
|
||||
ref = "c665fcca9e7be8cd06c1f3c5bbe2b00d4c8f2a92"; # nixos-17.09 @ 2018-03-18
|
||||
};
|
||||
nixpkgs = (import ./kops.nix { name = ""; }).krebs-source.nixpkgs;
|
||||
}
|
||||
override
|
||||
]
|
||||
|
@ -140,6 +140,7 @@ with import <stockholm/lib>;
|
||||
dpass
|
||||
|
||||
dnsutils
|
||||
generate-secrets
|
||||
];
|
||||
|
||||
#TODO: fix this shit
|
||||
@ -167,14 +168,8 @@ with import <stockholm/lib>;
|
||||
environment.shellAliases = {
|
||||
deploy = pkgs.writeDash "deploy" ''
|
||||
set -eu
|
||||
export PATH=${makeBinPath [
|
||||
pkgs.bash
|
||||
pkgs.coreutils
|
||||
pkgs.nixUnstable
|
||||
]}
|
||||
cd ~/stockholm
|
||||
export SYSTEM="$1"
|
||||
exec nix-shell -I stockholm="$PWD" --run 'deploy --system="$SYSTEM"'
|
||||
$(nix-build $HOME/stockholm/lass/kops.nix --no-out-link --argstr name "$SYSTEM" -A deploy)
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -21,59 +21,37 @@ let
|
||||
$BIN "$@"
|
||||
'';
|
||||
|
||||
createChromiumUser = name: extraGroups: precedence:
|
||||
let
|
||||
bin = pkgs.writeScriptBin name ''
|
||||
/var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.chromium}/bin/chromium $@
|
||||
'';
|
||||
in {
|
||||
users.extraUsers.${name} = {
|
||||
inherit name;
|
||||
inherit extraGroups;
|
||||
home = "/home/${name}";
|
||||
uid = genid name;
|
||||
useDefaultShell = true;
|
||||
createHome = true;
|
||||
createUser = script: name: groups: precedence: dpi:
|
||||
{
|
||||
lass.xjail.${name} = {
|
||||
inherit script groups dpi;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
config.lass.xjail-bins.${name}
|
||||
(pkgs.writeDashBin "cx-${name}" ''
|
||||
DISPLAY=:${toString (genid_signed name)} ${pkgs.xclip}/bin/xclip -o | DISPLAY=:0 ${pkgs.xclip}/bin/xclip
|
||||
'')
|
||||
];
|
||||
lass.browser.paths.${name} = {
|
||||
path = bin;
|
||||
path = config.lass.xjail-bins.${name};
|
||||
inherit precedence;
|
||||
};
|
||||
security.sudo.extraConfig = ''
|
||||
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
||||
'';
|
||||
environment.systemPackages = [
|
||||
bin
|
||||
];
|
||||
};
|
||||
|
||||
createFirefoxUser = name: extraGroups: precedence:
|
||||
let
|
||||
bin = pkgs.writeScriptBin name ''
|
||||
/var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.firefox-devedition-bin}/bin/firefox-devedition $@
|
||||
'';
|
||||
in {
|
||||
users.extraUsers.${name} = {
|
||||
inherit name;
|
||||
inherit extraGroups;
|
||||
home = "/home/${name}";
|
||||
uid = genid name;
|
||||
useDefaultShell = true;
|
||||
createHome = true;
|
||||
};
|
||||
lass.browser.paths.${name} = {
|
||||
path = bin;
|
||||
inherit precedence;
|
||||
};
|
||||
security.sudo.extraConfig = ''
|
||||
${mainUser.name} ALL=(${name}) NOPASSWD: ALL
|
||||
'';
|
||||
environment.systemPackages = [
|
||||
bin
|
||||
];
|
||||
};
|
||||
createChromiumUser = name: groups: precedence:
|
||||
createUser (pkgs.writeDash name ''
|
||||
${pkgs.chromium}/bin/chromium "$@"
|
||||
'') name groups precedence 80;
|
||||
|
||||
#TODO: abstract this
|
||||
createFirefoxUser = name: groups: precedence:
|
||||
createUser (pkgs.writeDash name ''
|
||||
${pkgs.firefox-devedition-bin}/bin/firefox-devedition "$@"
|
||||
'') name groups precedence 80;
|
||||
|
||||
createQuteUser = name: groups: precedence:
|
||||
createUser (pkgs.writeDash name ''
|
||||
${pkgs.qutebrowser}/bin/qutebrowser "$@"
|
||||
'') name groups precedence 60;
|
||||
|
||||
in {
|
||||
|
||||
@ -110,12 +88,13 @@ in {
|
||||
}));
|
||||
};
|
||||
}
|
||||
( createQuteUser "qb" [ "audio" ] 20 )
|
||||
( createFirefoxUser "ff" [ "audio" ] 10 )
|
||||
( createChromiumUser "cr" [ "video" "audio" ] 9 )
|
||||
( createChromiumUser "cr" [ "audio" ] 9 )
|
||||
( createChromiumUser "gm" [ "video" "audio" ] 8 )
|
||||
( createChromiumUser "wk" [ "video" "audio" ] 0 )
|
||||
( createChromiumUser "fb" [ "video" "audio" ] 0 )
|
||||
( createChromiumUser "com" [ "video" "audio" ] 0 )
|
||||
( createChromiumUser "wk" [ "audio" ] 0 )
|
||||
( createChromiumUser "fb" [ "audio" ] 0 )
|
||||
( createChromiumUser "com" [ "audio" ] 0 )
|
||||
( createChromiumUser "fin" [] (-1) )
|
||||
];
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
let
|
||||
mainUser = config.users.extraUsers.mainUser;
|
||||
vdoom = pkgs.writeDash "vdoom" ''
|
||||
${pkgs.zandronum-bin}/bin/zandronum \
|
||||
${pkgs.zandronum}/bin/zandronum \
|
||||
-fov 120 \
|
||||
"$@"
|
||||
'';
|
||||
@ -50,7 +50,7 @@ let
|
||||
vdoomserver = pkgs.writeDashBin "vdoomserver" ''
|
||||
DOOM_DIR=''${DOOM_DIR:-~/doom/}
|
||||
|
||||
${pkgs.zandronum-bin}/bin/zandronum-server \
|
||||
${pkgs.zandronum}/bin/zandronum-server \
|
||||
+exec ${doomservercfg} \
|
||||
"$@"
|
||||
'';
|
||||
|
@ -75,7 +75,7 @@ let
|
||||
|
||||
muttrc = pkgs.writeText "muttrc" ''
|
||||
# gpg
|
||||
source ${pkgs.neomutt}/share/doc/mutt/samples/gpg.rc
|
||||
source ${pkgs.neomutt}/share/doc/neomutt/samples/gpg.rc
|
||||
set pgp_use_gpg_agent = yes
|
||||
set pgp_sign_as = 0xDC2A43EF4F11E854B44D599A89E82952976A7E4D
|
||||
set crypt_autosign = yes
|
||||
@ -195,7 +195,7 @@ let
|
||||
name = "mutt";
|
||||
paths = [
|
||||
(pkgs.writeDashBin "mutt" ''
|
||||
exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@
|
||||
exec ${pkgs.neomutt}/bin/neomutt -F ${muttrc} $@
|
||||
'')
|
||||
pkgs.neomutt
|
||||
];
|
||||
|
@ -14,7 +14,13 @@
|
||||
RestartSec = "5";
|
||||
};
|
||||
};
|
||||
networking.networkmanager.enable = true;
|
||||
networking.networkmanager = {
|
||||
enable = true;
|
||||
unmanaged = [
|
||||
"docker*"
|
||||
"vboxnet*"
|
||||
];
|
||||
};
|
||||
users.users.mainUser = {
|
||||
extraGroups = [ "networkmanager" ];
|
||||
packages = with pkgs; [
|
||||
|
@ -3,10 +3,5 @@
|
||||
{
|
||||
services.privoxy = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
#use polipo
|
||||
forward / localhost:8123
|
||||
'';
|
||||
};
|
||||
services.polipo.enable = true;
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ with import <stockholm/lib>;
|
||||
(buildSimpleReaktorPlugin "ping" {
|
||||
pattern = "^!ping (?P<args>.*)$$";
|
||||
script = pkgs.writeDash "ping" ''
|
||||
exec /var/setuid-wrappers/ping -q -c1 "$1" 2>&1 | tail -1
|
||||
exec /run/wrappers/bin/ping -q -c1 "$1" 2>&1 | tail -1
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
@ -61,6 +61,21 @@ let
|
||||
origin.url = "http://cgit.lassul.us/${name}";
|
||||
mirror.url = "${mirror}${name}";
|
||||
};
|
||||
makefu-staging = {
|
||||
origin.url = "http://cgit.gum/${name}";
|
||||
origin.ref = "heads/staging";
|
||||
mirror.url = "${mirror}${name}";
|
||||
};
|
||||
tv-staging = {
|
||||
origin.url = "http://cgit.ni.r/${name}";
|
||||
origin.ref = "heads/staging";
|
||||
mirror.url = "${mirror}${name}";
|
||||
};
|
||||
nin-staging = {
|
||||
origin.url = "http://cgit.onondaga.r/${name}";
|
||||
origin.ref = "heads/staging";
|
||||
mirror.url = "${mirror}${name}";
|
||||
};
|
||||
};
|
||||
latest = {
|
||||
url = "${mirror}${name}";
|
||||
|
@ -6,6 +6,8 @@ let
|
||||
in {
|
||||
#services.virtualboxHost.enable = true;
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
nixpkgs.config.virtualbox.enableExtensionPack = true;
|
||||
virtualisation.virtualbox.host.enableHardening = false;
|
||||
|
||||
users.extraUsers = {
|
||||
virtual = {
|
||||
|
@ -11,6 +11,7 @@ _:
|
||||
./screenlock.nix
|
||||
./umts.nix
|
||||
./usershadow.nix
|
||||
./xjail.nix
|
||||
./xserver
|
||||
];
|
||||
}
|
||||
|
164
lass/3modules/xjail.nix
Normal file
164
lass/3modules/xjail.nix
Normal file
@ -0,0 +1,164 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with import <stockholm/lib>;
|
||||
{
|
||||
options.lass.xjail = mkOption {
|
||||
type = types.attrsOf (types.submodule ({ config, ...}: {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.string;
|
||||
default = config._module.args.name;
|
||||
};
|
||||
user = mkOption {
|
||||
type = types.string;
|
||||
default = config.name;
|
||||
};
|
||||
groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
};
|
||||
from = mkOption {
|
||||
type = types.string;
|
||||
default = "lass";
|
||||
};
|
||||
display = mkOption {
|
||||
type = types.string;
|
||||
default = toString (genid_signed config._module.args.name);
|
||||
};
|
||||
dpi = mkOption {
|
||||
type = types.int;
|
||||
default = 90;
|
||||
};
|
||||
extraXephyrArgs = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
};
|
||||
extraVglrunArgs = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
};
|
||||
script = mkOption {
|
||||
type = types.path;
|
||||
default = pkgs.writeScript "echo_lol" "echo lol";
|
||||
};
|
||||
wm = mkOption {
|
||||
#TODO find type
|
||||
type = types.string;
|
||||
default = "${pkgs.writeHaskell "xephyrify-xmonad" {
|
||||
executables.xmonad = {
|
||||
extra-depends = [
|
||||
"containers"
|
||||
"unix"
|
||||
"xmonad"
|
||||
];
|
||||
text = /* haskell */ ''
|
||||
module Main where
|
||||
import XMonad
|
||||
import Data.Monoid
|
||||
import System.Posix.Process (executeFile)
|
||||
import qualified Data.Map as Map
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
xmonad def
|
||||
{ workspaces = [ "1" ]
|
||||
, layoutHook = myLayoutHook
|
||||
, keys = myKeys
|
||||
, normalBorderColor = "#000000"
|
||||
, focusedBorderColor = "#000000"
|
||||
, handleEventHook = myEventHook
|
||||
}
|
||||
|
||||
myEventHook :: Event -> X All
|
||||
|
||||
myEventHook (ConfigureEvent { ev_event_type = 22 }) = do
|
||||
spawn "${pkgs.xorg.xrandr}/bin/xrandr >/dev/null 2>&1"
|
||||
return (All True)
|
||||
|
||||
myEventHook _ = do
|
||||
return (All True)
|
||||
|
||||
myLayoutHook = Full
|
||||
myKeys _ = Map.fromList []
|
||||
'';
|
||||
};
|
||||
}}/bin/xmonad";
|
||||
};
|
||||
};
|
||||
}));
|
||||
default = {};
|
||||
};
|
||||
|
||||
options.lass.xjail-bins = mkOption {
|
||||
type = types.attrsOf types.path;
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = let
|
||||
scripts = mapAttrs' (name: cfg:
|
||||
let
|
||||
newOrExisting = pkgs.writeDash "${cfg.name}-existing" ''
|
||||
DISPLAY=:${cfg.display} ${pkgs.xorg.xrandr}/bin/xrandr
|
||||
if test $? -eq 0; then
|
||||
echo using existing xephyr
|
||||
${sudo_} "$@"
|
||||
else
|
||||
echo starting new xephyr
|
||||
${xephyr_} "$@"
|
||||
fi
|
||||
'';
|
||||
xephyr_ = pkgs.writeDash "${cfg.name}-xephyr" ''
|
||||
${pkgs.xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable -nolisten local -dpi ${toString cfg.dpi} ${cfg.extraXephyrArgs} :${cfg.display} &
|
||||
XEPHYR_PID=$!
|
||||
DISPLAY=:${cfg.display} ${cfg.wm} &
|
||||
WM_PID=$!
|
||||
${sudo_} "$@"
|
||||
${pkgs.coreutils}/bin/kill $WM_PID
|
||||
${pkgs.coreutils}/bin/kill $XEPHYR_PID
|
||||
'';
|
||||
sudo_ = pkgs.writeDash "${cfg.name}-sudo" ''
|
||||
/var/run/wrappers/bin/sudo -u ${cfg.name} -i ${vglrun_} "$@"
|
||||
'';
|
||||
vglrun_ = pkgs.writeDash "${cfg.name}-vglrun" ''
|
||||
DISPLAY=:${cfg.display} ${pkgs.virtualgl}/bin/vglrun ${cfg.extraVglrunArgs} ${cfg.script} "$@"
|
||||
'';
|
||||
in nameValuePair name {
|
||||
existing = newOrExisting;
|
||||
xephyr = xephyr_;
|
||||
sudo = sudo_;
|
||||
vglrun = vglrun_;
|
||||
}
|
||||
) config.lass.xjail;
|
||||
in {
|
||||
|
||||
users.users = mapAttrs' (_: cfg:
|
||||
nameValuePair cfg.name {
|
||||
uid = genid cfg.name;
|
||||
home = "/home/${cfg.name}";
|
||||
useDefaultShell = true;
|
||||
createHome = true;
|
||||
extraGroups = cfg.groups;
|
||||
}
|
||||
) config.lass.xjail;
|
||||
|
||||
users.groups = mapAttrs' (_: cfg:
|
||||
nameValuePair cfg.name {
|
||||
members = [
|
||||
cfg.name
|
||||
cfg.from
|
||||
];
|
||||
}
|
||||
) config.lass.xjail;
|
||||
|
||||
security.sudo.extraConfig = (concatStringsSep "\n" (mapAttrsToList (_: cfg:
|
||||
# TODO allow just the right script with sudo
|
||||
"${cfg.from} ALL=(${cfg.name}) NOPASSWD: ALL"
|
||||
) config.lass.xjail));
|
||||
|
||||
lass.xjail-bins = mapAttrs' (name: cfg:
|
||||
nameValuePair name (pkgs.writeScriptBin cfg.name ''
|
||||
${scripts.${name}.existing} "$@"
|
||||
'')
|
||||
) config.lass.xjail;
|
||||
};
|
||||
}
|
@ -147,6 +147,10 @@ myKeyMap =
|
||||
export PATH=$PATH:${pkgs.dmenu}/bin:${pkgs.networkmanagerapplet}/bin
|
||||
exec ${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu "$@"
|
||||
''}")
|
||||
, ("M4-<Insert>", spawn "${pkgs.writeDash "paste" ''
|
||||
${pkgs.coreutils}/bin/sleep 0.1
|
||||
${pkgs.xclip}/bin/xclip -o | ${pkgs.xdotool}/bin/xdotool type -f -
|
||||
''}")
|
||||
|
||||
, ("M4-<F5>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 1")
|
||||
, ("M4-<F6>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 10")
|
||||
|
@ -31,7 +31,6 @@ in {
|
||||
fi
|
||||
${self.coreutils}/bin/rm $tmp
|
||||
'';
|
||||
rtl8814au = callPackage ./custom/rtl8814au { kernel = self.linux; };
|
||||
}
|
||||
|
||||
// mapAttrs (_: flip callPackage {})
|
||||
|
46
lass/5pkgs/generate-secrets/default.nix
Normal file
46
lass/5pkgs/generate-secrets/default.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ pkgs }:
|
||||
pkgs.writeDashBin "generate-secrets" ''
|
||||
HOSTNAME="$1"
|
||||
TMPDIR=$(${pkgs.coreutils}/bin/mktemp -d)
|
||||
PASSWORD=$(${pkgs.pwgen}/bin/pwgen 25 1)
|
||||
HASHED_PASSWORD=$(echo $PASSWORD | ${pkgs.hashPassword}/bin/hashPassword -s) > /dev/null
|
||||
|
||||
${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f $TMPDIR/ssh.id_ed25519 -P "" -C "" >/dev/null
|
||||
${pkgs.openssl}/bin/openssl genrsa -out $TMPDIR/retiolum.rsa_key.priv 4096 2>/dev/null > /dev/null
|
||||
${pkgs.openssl}/bin/openssl rsa -in $TMPDIR/retiolum.rsa_key.priv -pubout -out $TMPDIR/retiolum.rsa_key.pub 2>/dev/null > /dev/null
|
||||
cat <<EOF > $TMPDIR/hashedPasswords.nix
|
||||
{
|
||||
root = "$HASHED_PASSWORD";
|
||||
mainUser = "$HASHED_PASSWORD";
|
||||
}
|
||||
EOF
|
||||
|
||||
cd $TMPDIR
|
||||
for x in *; do
|
||||
${pkgs.coreutils}/bin/cat $x | ${pkgs.pass}/bin/pass insert -m hosts/$HOSTNAME/$x > /dev/null
|
||||
done
|
||||
echo $PASSWORD | ${pkgs.pass}/bin/pass insert -m admin/hosts/$HOSTNAME/pass > /dev/null
|
||||
|
||||
cat <<EOF
|
||||
$HOSTNAME = {
|
||||
cores = 1;
|
||||
nets = {
|
||||
retiolum = {
|
||||
ip4.addr = "10.243.0.changeme";
|
||||
ip6.addr = "42:0:0:0:0:0:0:changeme";
|
||||
aliases = [
|
||||
"$HOSTNAME.r"
|
||||
];
|
||||
tinc.pubkey = ${"''"}
|
||||
$(cat $TMPDIR/retiolum.rsa_key.pub)
|
||||
${"''"};
|
||||
};
|
||||
};
|
||||
ssh.privkey.path = <secrets/ssh.id_ed25519>;
|
||||
ssh.pubkey = "$(cat $TMPDIR/ssh.id_ed25519.pub)";
|
||||
};
|
||||
EOF
|
||||
|
||||
rm -rf $TMPDIR
|
||||
''
|
||||
|
@ -2,15 +2,18 @@
|
||||
|
||||
let
|
||||
|
||||
minimalXmonad = writeHaskell "minimalXmonad" {
|
||||
xephyrify-xmonad = writeHaskell "xephyrify-xmonad" {
|
||||
executables.xmonad = {
|
||||
extra-depends = [
|
||||
"containers"
|
||||
"unix"
|
||||
"xmonad"
|
||||
];
|
||||
text = /* haskell */ ''
|
||||
module Main where
|
||||
import XMonad
|
||||
import Data.Monoid
|
||||
import System.Posix.Process (executeFile)
|
||||
import qualified Data.Map as Map
|
||||
|
||||
main :: IO ()
|
||||
@ -21,8 +24,18 @@ let
|
||||
, keys = myKeys
|
||||
, normalBorderColor = "#000000"
|
||||
, focusedBorderColor = "#000000"
|
||||
, handleEventHook = myEventHook
|
||||
}
|
||||
|
||||
myEventHook :: Event -> X All
|
||||
|
||||
myEventHook (ConfigureEvent { ev_event_type = 22 }) = do
|
||||
spawn "${xorg.xrandr}/bin/xrandr >/dev/null 2>&1"
|
||||
return (All True)
|
||||
|
||||
myEventHook _ = do
|
||||
return (All True)
|
||||
|
||||
myLayoutHook = Full
|
||||
myKeys _ = Map.fromList []
|
||||
'';
|
||||
@ -30,13 +43,20 @@ let
|
||||
};
|
||||
|
||||
in writeDashBin "xephyrify" ''
|
||||
NDISPLAY=:$(${coreutils}/bin/shuf -i 100-65536 -n 1)
|
||||
NDISPLAY=''${NDISPLAY:-$(${coreutils}/bin/shuf -i 100-65536 -n 1)}
|
||||
echo "using DISPLAY $NDISPLAY"
|
||||
${xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable $NDISPLAY &
|
||||
${xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable -dpi 60 -nolisten local :$NDISPLAY &
|
||||
if test -n $DROP_TO_USER; then
|
||||
sleep 1
|
||||
ls /tmp/.X11-unix/
|
||||
id
|
||||
${coreutils}/bin/chgrp "$DROP_TO_USER" "/tmp/.X11-unix/X$NDISPLAY"
|
||||
${coreutils}/bin/chmod 770 "/tmp/.X11-unix/X$NDISPLAY"
|
||||
fi
|
||||
XEPHYR_PID=$!
|
||||
DISPLAY=$NDISPLAY ${minimalXmonad}/bin/xmonad &
|
||||
DISPLAY=:$NDISPLAY ${xephyrify-xmonad}/bin/xmonad &
|
||||
XMONAD_PID=$!
|
||||
DISPLAY=$NDISPLAY ${virtualgl}/bin/vglrun "$@"
|
||||
DISPLAY=:$NDISPLAY ${virtualgl}/bin/vglrun "$@"
|
||||
kill $XMONAD_PID
|
||||
kill $XEPHYR_PID
|
||||
''
|
||||
|
35
lass/kops.nix
Normal file
35
lass/kops.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ name }: let
|
||||
inherit (import ../krebs/kops.nix { inherit name; })
|
||||
krebs-source
|
||||
lib
|
||||
pkgs
|
||||
;
|
||||
|
||||
source = { test }: lib.evalSource [
|
||||
krebs-source
|
||||
{
|
||||
nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix";
|
||||
secrets = if test then {
|
||||
file = "/home/lass/stockholm/lass/2configs/tests/dummy-secrets";
|
||||
} else {
|
||||
pass = {
|
||||
dir = "${lib.getEnv "HOME"}/.password-store";
|
||||
name = "hosts/${name}";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
in {
|
||||
# usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy)
|
||||
deploy = pkgs.kops.writeDeploy "${name}-deploy" {
|
||||
source = source { test = false; };
|
||||
target = "root@${name}/var/src";
|
||||
};
|
||||
|
||||
# usage: $(nix-build --no-out-link --argstr name HOSTNAME -A test)
|
||||
test = pkgs.kops.writeTest "${name}-test" {
|
||||
source = source { test = true; };
|
||||
target = "${lib.getEnv "HOME"}/tmp/${name}-kops-test-src";
|
||||
};
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
import <stockholm/makefu/source.nix> {
|
||||
name="drop";
|
||||
torrent = true;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import <stockholm/makefu/source.nix> {
|
||||
name="fileleech";
|
||||
name = "fileleech";
|
||||
torrent = true;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ in {
|
||||
|
||||
# network
|
||||
<stockholm/makefu/2configs/vpn/openvpn-server.nix>
|
||||
<stockholm/makefu/2configs/vpn/vpnws/server.nix>
|
||||
# <stockholm/makefu/2configs/vpn/vpnws/server.nix>
|
||||
<stockholm/makefu/2configs/dnscrypt/server.nix>
|
||||
<stockholm/makefu/2configs/iodined.nix>
|
||||
|
||||
|
@ -9,7 +9,7 @@ let
|
||||
keyFile = byid "usb-Verbatim_STORE_N_GO_070B3CEE0B223954-0:0";
|
||||
rootDisk = byid "ata-SanDisk_SD8SNAT128G1122_162099420904";
|
||||
rootPartition = byid "ata-SanDisk_SD8SNAT128G1122_162099420904-part2";
|
||||
primaryInterface = "enp1s0";
|
||||
primaryInterface = "enp2s0";
|
||||
# cryptsetup luksFormat $dev --cipher aes-xts-plain64 -s 512 -h sha512
|
||||
# cryptsetup luksAddKey $dev tmpkey
|
||||
# cryptsetup luksOpen $dev crypt0 --key-file tmpkey --keyfile-size=4096
|
||||
@ -54,6 +54,7 @@ in {
|
||||
#<stockholm/makefu/2configs/graphite-standalone.nix>
|
||||
#<stockholm/makefu/2configs/share-user-sftp.nix>
|
||||
<stockholm/makefu/2configs/share/omo.nix>
|
||||
# <stockholm/makefu/2configs/share/omo-timemachine.nix>
|
||||
<stockholm/makefu/2configs/tinc/retiolum.nix>
|
||||
|
||||
|
||||
@ -65,6 +66,7 @@ in {
|
||||
<stockholm/makefu/2configs/stats/external/aralast.nix>
|
||||
<stockholm/makefu/2configs/stats/telegraf>
|
||||
<stockholm/makefu/2configs/stats/telegraf/europastats.nix>
|
||||
<stockholm/makefu/2configs/stats/arafetch.nix>
|
||||
|
||||
# services
|
||||
<stockholm/makefu/2configs/syncthing.nix>
|
||||
@ -72,6 +74,11 @@ in {
|
||||
<stockholm/makefu/2configs/remote-build/slave.nix>
|
||||
<stockholm/makefu/2configs/deployment/google-muell.nix>
|
||||
<stockholm/makefu/2configs/virtualisation/docker.nix>
|
||||
<stockholm/makefu/2configs/bluetooth-mpd.nix>
|
||||
{
|
||||
hardware.pulseaudio.systemWide = true;
|
||||
makefu.mpd.musicDirectory = "/media/cryptX/music";
|
||||
}
|
||||
|
||||
|
||||
# security
|
||||
|
@ -32,66 +32,7 @@ in {
|
||||
<stockholm/makefu/2configs/hydra/stockholm.nix>
|
||||
|
||||
<stockholm/makefu/2configs/share/wbob.nix>
|
||||
(let
|
||||
musicDirectory = "/data/music";
|
||||
in {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
inherit musicDirectory;
|
||||
# dataDir = "/home/anders/.mpd";
|
||||
network.listenAddress = "any";
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "Local MPD"
|
||||
server "127.0.0.1"
|
||||
}
|
||||
'';
|
||||
};
|
||||
# open because of truestedInterfaces
|
||||
# networking.firewall.allowedTCPPorts = [ 6600 4713 ];
|
||||
services.samba.shares.music = {
|
||||
path = musicDirectory;
|
||||
"read only" = "no";
|
||||
browseable = "yes";
|
||||
"guest ok" = "yes";
|
||||
};
|
||||
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio = {
|
||||
enable = true;
|
||||
package = pkgs.pulseaudioFull;
|
||||
# systemWide = true;
|
||||
support32Bit = true;
|
||||
zeroconf.discovery.enable = true;
|
||||
zeroconf.publish.enable = true;
|
||||
tcp = {
|
||||
enable = true;
|
||||
anonymousClients.allowAll = true;
|
||||
anonymousClients.allowedIpRanges = [ "127.0.0.1" "192.168.8.0/24" ];
|
||||
};
|
||||
configFile = pkgs.writeText "default.pa" ''
|
||||
load-module module-udev-detect
|
||||
load-module module-bluetooth-policy
|
||||
load-module module-bluetooth-discover
|
||||
load-module module-native-protocol-unix
|
||||
load-module module-always-sink
|
||||
load-module module-console-kit
|
||||
load-module module-systemd-login
|
||||
load-module module-intended-roles
|
||||
load-module module-position-event-sounds
|
||||
load-module module-filter-heuristics
|
||||
load-module module-filter-apply
|
||||
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
|
||||
load-module module-switch-on-connect
|
||||
# may be required for "system-wide" pulse to connect to bluetooth
|
||||
#module-bluez5-device
|
||||
#module-bluez5-discover
|
||||
'';
|
||||
};
|
||||
# connect via https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio
|
||||
hardware.bluetooth.enable = true;
|
||||
})
|
||||
<stockholm/makefu/2configs/bluetooth-mpd.nix>
|
||||
|
||||
# Sensors
|
||||
<stockholm/makefu/2configs/stats/telegraf>
|
||||
|
68
makefu/2configs/bluetooth-mpd.nix
Normal file
68
makefu/2configs/bluetooth-mpd.nix
Normal file
@ -0,0 +1,68 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.makefu.mpd;
|
||||
in {
|
||||
options.makefu.mpd.musicDirectory = lib.mkOption {
|
||||
description = "music Directory";
|
||||
default = "/data/music";
|
||||
type = lib.types.str;
|
||||
};
|
||||
config = {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
inherit (cfg) musicDirectory;
|
||||
network.listenAddress = "0.0.0.0";
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "Local MPD"
|
||||
server "127.0.0.1"
|
||||
}
|
||||
'';
|
||||
};
|
||||
# open because of truestedInterfaces
|
||||
# networking.firewall.allowedTCPPorts = [ 6600 4713 ];
|
||||
services.samba.shares.music = {
|
||||
path = cfg.musicDirectory;
|
||||
"read only" = "no";
|
||||
browseable = "yes";
|
||||
"guest ok" = "yes";
|
||||
};
|
||||
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio = {
|
||||
enable = true;
|
||||
package = pkgs.pulseaudioFull;
|
||||
# systemWide = true;
|
||||
support32Bit = true;
|
||||
zeroconf.discovery.enable = true;
|
||||
zeroconf.publish.enable = true;
|
||||
tcp = {
|
||||
enable = true;
|
||||
# PULSE_SERVER=192.168.1.11 pavucontrol
|
||||
anonymousClients.allowAll = true;
|
||||
};
|
||||
configFile = pkgs.writeText "default.pa" ''
|
||||
load-module module-udev-detect
|
||||
load-module module-bluetooth-policy
|
||||
load-module module-bluetooth-discover
|
||||
load-module module-native-protocol-unix
|
||||
load-module module-always-sink
|
||||
load-module module-console-kit
|
||||
load-module module-systemd-login
|
||||
load-module module-intended-roles
|
||||
load-module module-position-event-sounds
|
||||
load-module module-filter-heuristics
|
||||
load-module module-filter-apply
|
||||
load-module module-switch-on-connect
|
||||
'';
|
||||
};
|
||||
# connect via https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio
|
||||
hardware.bluetooth.enable = true;
|
||||
#hardware.bluetooth.extraConfig = ''
|
||||
# [general]
|
||||
# Enable=Source,Sink,Media,Socket
|
||||
#'';
|
||||
};
|
||||
}
|
@ -30,6 +30,7 @@ in {
|
||||
forceSSL = true;
|
||||
locations = {
|
||||
"/".extraConfig = ''
|
||||
expires -1;
|
||||
uwsgi_pass unix://${wsgi-sock};
|
||||
uwsgi_param UWSGI_CHDIR ${workdir};
|
||||
uwsgi_param UWSGI_MODULE cuserver.main;
|
||||
|
@ -17,6 +17,7 @@ let
|
||||
# contains:
|
||||
# user1 = pass1
|
||||
# userN = passN
|
||||
# afterwards put /var/www/<ext-dom>/user1.html as tiddlywiki
|
||||
tw-pass-file = "${sec}/tw-pass.ini";
|
||||
|
||||
in {
|
||||
@ -45,7 +46,7 @@ in {
|
||||
|
||||
systemd.services.prepare-tw = {
|
||||
wantedBy = [ "local-fs.target" ];
|
||||
before = [ "phpfpm.service" ];
|
||||
before = [ "phpfpm.service" "nginx.service" ];
|
||||
serviceConfig = {
|
||||
ExecStart = pkgs.writeScript "prepare-tw-service" ''
|
||||
#!/bin/sh
|
||||
@ -92,6 +93,7 @@ in {
|
||||
locations = {
|
||||
"/" = {
|
||||
root = wiki-dir;
|
||||
index = "makefu.html";
|
||||
extraConfig = ''
|
||||
expires -1;
|
||||
autoindex on;
|
||||
|
36
makefu/2configs/stats/arafetch.nix
Normal file
36
makefu/2configs/stats/arafetch.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ pkgs, lib, ...}:
|
||||
with import <stockholm/lib>;
|
||||
let
|
||||
pkg = with pkgs.python3Packages;buildPythonPackage rec {
|
||||
rev = "762d747";
|
||||
name = "europastats-${rev}";
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
docopt
|
||||
influxdb
|
||||
beautifulsoup4
|
||||
];
|
||||
src = pkgs.fetchgit {
|
||||
url = "http://cgit.euer.krebsco.de/arafetch";
|
||||
inherit rev;
|
||||
sha256 = "164xiqbrr914lz0nh3i1dxz8iwg6vm2af3i3803cd3242nznw0ws";
|
||||
};
|
||||
};
|
||||
home = "/var/lib/arafetch";
|
||||
in {
|
||||
users.users.arafetch = {
|
||||
uid = genid "arafetch";
|
||||
inherit home;
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
systemd.services.arafetch = {
|
||||
startAt = "Mon 09:15:00";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment = {
|
||||
OUTDIR = home;
|
||||
};
|
||||
path = [ pkg pkgs.git pkgs.wget ];
|
||||
script = "${pkg}/bin/weekrun";
|
||||
};
|
||||
}
|
@ -1 +0,0 @@
|
||||
{}
|
@ -21,9 +21,9 @@ let
|
||||
];
|
||||
};
|
||||
# TODO: automate updating of this ref + cherry-picks
|
||||
ref = "6b6e72b"; # nixos-17.09 @ 2018-03-07
|
||||
ref = "6583793"; # nixos-17.09 @ 2018-03-07
|
||||
# + do_sqlite3 ruby: 55a952be5b5
|
||||
# + signal: 0f19beef3
|
||||
# + signal: 0f19beef3, 50ad913, 9449782, b7046ab2
|
||||
|
||||
in
|
||||
evalSource (toString _file) [
|
||||
|
@ -3,7 +3,7 @@
|
||||
let
|
||||
mainUser = config.users.extraUsers.mainUser;
|
||||
vdoom = pkgs.writeDash "vdoom" ''
|
||||
${pkgs.zandronum-bin}/bin/zandronum \
|
||||
${pkgs.zandronum}/bin/zandronum \
|
||||
-fov 120 \
|
||||
"$@"
|
||||
'';
|
||||
@ -50,7 +50,7 @@ let
|
||||
vdoomserver = pkgs.writeDashBin "vdoomserver" ''
|
||||
DOOM_DIR=''${DOOM_DIR:-~/doom/}
|
||||
|
||||
${pkgs.zandronum-bin}/bin/zandronum-server \
|
||||
${pkgs.zandronum}/bin/zandronum-server \
|
||||
+exec ${doomservercfg} \
|
||||
"$@"
|
||||
'';
|
||||
|
@ -13,11 +13,6 @@ with import <stockholm/lib>;
|
||||
|
||||
http://www.exim.org/
|
||||
|
||||
{
|
||||
url = https://api.github.com/repos/Gabriel439/nix-diff/git/refs/heads/master;
|
||||
filter = "system:${pkgs.jq}/bin/jq -r .object.sha";
|
||||
}
|
||||
|
||||
# ref src/nixpkgs/pkgs/tools/admin/sec/default.nix
|
||||
{
|
||||
url = https://api.github.com/repos/simple-evcorr/sec/tags;
|
||||
|
@ -11,6 +11,7 @@ in {
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.ff
|
||||
pkgs.font-size
|
||||
pkgs.gitAndTools.qgit
|
||||
pkgs.mpv
|
||||
pkgs.sxiv
|
||||
|
26
tv/5pkgs/simple/font-size.nix
Normal file
26
tv/5pkgs/simple/font-size.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ writeDashBin }:
|
||||
writeDashBin "font-size" ''
|
||||
set -efu
|
||||
|
||||
# set_font NORMAL_FONT BOLD_FONT
|
||||
set_font() {
|
||||
printf '\033]710;%s\007' "$1"
|
||||
printf '\033]711;%s\007' "$2"
|
||||
}
|
||||
|
||||
case ''${1-} in
|
||||
'''|0|--reset)
|
||||
set_font \
|
||||
-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 \
|
||||
-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 \
|
||||
;;
|
||||
[1-9]|[1-9][0-9]|[1-9][0-9][0-9])
|
||||
set_font \
|
||||
xft:Monospace:size=$1 \
|
||||
xft:Monospace:size=$1:bold \
|
||||
;;
|
||||
*)
|
||||
echo "$0: bad argument: $1" >&2
|
||||
exit 1
|
||||
esac
|
||||
''
|
@ -133,6 +133,8 @@ myKeys conf = Map.fromList $
|
||||
[ ((_4 , xK_Escape ), forkFile "/run/wrappers/bin/slock" [] Nothing)
|
||||
, ((_4S , xK_c ), kill)
|
||||
|
||||
, ((_4 , xK_p ), forkFile "${pkgs.pass}/bin/passmenu" ["--type"] Nothing)
|
||||
|
||||
, ((_4 , xK_x ), chooseAction spawnTermAt)
|
||||
, ((_4C , xK_x ), spawnRootTerm)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user