Merge remote-tracking branch 'prism/tv'
This commit is contained in:
commit
995d1b0c7c
@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "jeschli";
|
else "jeschli";
|
||||||
_file = <stockholm> + "/jeschli/1systems/${name}/source.nix";
|
_file = <stockholm> + "/jeschli/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) [
|
evalSource (toString _file) [
|
||||||
{
|
{
|
||||||
@ -17,6 +22,7 @@ in
|
|||||||
jeschli = "${getEnv "HOME"}/secrets/${name}";
|
jeschli = "${getEnv "HOME"}/secrets/${name}";
|
||||||
};
|
};
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
}
|
}
|
||||||
override
|
override
|
||||||
]
|
]
|
||||||
|
@ -5,7 +5,11 @@ let
|
|||||||
nixos-version = "${nixos-version-id} (${config.system.nixosCodeName})";
|
nixos-version = "${nixos-version-id} (${config.system.nixosCodeName})";
|
||||||
nixos-pretty-name = "NixOS ${nixos-version}";
|
nixos-pretty-name = "NixOS ${nixos-version}";
|
||||||
|
|
||||||
stockholm-version-id = maybeEnv "STOCKHOLM_VERSION" "unknown";
|
stockholm-version-id = let
|
||||||
|
eval = tryEval (removeSuffix "\n" (readFile <stockholm-version>));
|
||||||
|
in
|
||||||
|
if eval.success then eval.value else "unknown";
|
||||||
|
|
||||||
stockholm-version = "${stockholm-version-id}";
|
stockholm-version = "${stockholm-version-id}";
|
||||||
stockholm-pretty-name = "stockholm ${stockholm-version}";
|
stockholm-pretty-name = "stockholm ${stockholm-version}";
|
||||||
|
|
||||||
|
@ -18,10 +18,10 @@ let
|
|||||||
type = types.attrsOf (types.submodule ({ config, ... }: {
|
type = types.attrsOf (types.submodule ({ config, ... }: {
|
||||||
options = {
|
options = {
|
||||||
origin = mkOption {
|
origin = mkOption {
|
||||||
type = types.git-source;
|
type = types.source-types.git;
|
||||||
};
|
};
|
||||||
mirror = mkOption {
|
mirror = mkOption {
|
||||||
type = types.git-source;
|
type = types.source-types.git;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
@ -31,7 +31,7 @@ let
|
|||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
latest = mkOption {
|
latest = mkOption {
|
||||||
type = types.nullOr types.git-source;
|
type = types.nullOr types.source-types.git;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
timerConfig = mkOption {
|
timerConfig = mkOption {
|
||||||
|
@ -16,12 +16,12 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "populate";
|
name = "populate";
|
||||||
version = "2.1.0";
|
version = "2.3.0";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = http://cgit.ni.krebsco.de/populate;
|
url = http://cgit.ni.krebsco.de/populate;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "0cr50y6h6nps0qgpmi01h0z9wzpv2704y5zgx2salk1grkmvcfmh";
|
sha256 = "05zr132k1s3a1cc879lvhb83hax7dbfmsbrnxmh7dxjcdg3yhxd7";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [
|
phases = [
|
||||||
|
@ -216,7 +216,6 @@
|
|||||||
init.env = pkgs.writeText "init.env" /* sh */ ''
|
init.env = pkgs.writeText "init.env" /* sh */ ''
|
||||||
|
|
||||||
export HOSTNAME="$(${pkgs.nettools}/bin/hostname)"
|
export HOSTNAME="$(${pkgs.nettools}/bin/hostname)"
|
||||||
export STOCKHOLM_VERSION="''${STOCKHOLM_VERSION-$(${cmds.get-version})}"
|
|
||||||
|
|
||||||
export quiet
|
export quiet
|
||||||
export system
|
export system
|
||||||
@ -251,7 +250,6 @@
|
|||||||
"$target_user@$target_host" -p "$target_port" \
|
"$target_user@$target_host" -p "$target_port" \
|
||||||
cd "$target_path/stockholm" \; \
|
cd "$target_path/stockholm" \; \
|
||||||
NIX_PATH=$(${pkgs.quote}/bin/quote "$target_path") \
|
NIX_PATH=$(${pkgs.quote}/bin/quote "$target_path") \
|
||||||
STOCKHOLM_VERSION=$(${pkgs.quote}/bin/quote "$STOCKHOLM_VERSION") \
|
|
||||||
nix-shell --run "$(${pkgs.quote}/bin/quote "
|
nix-shell --run "$(${pkgs.quote}/bin/quote "
|
||||||
${lib.concatStringsSep " " (lib.mapAttrsToList
|
${lib.concatStringsSep " " (lib.mapAttrsToList
|
||||||
(name: opt: /* sh */
|
(name: opt: /* sh */
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
name = "urlwatch-${version}";
|
name = "urlwatch-${version}";
|
||||||
version = "2.7";
|
version = "2.8";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "thp";
|
owner = "thp";
|
||||||
repo = "urlwatch";
|
repo = "urlwatch";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0fx964z73yv08b1lpymmjsigf6929zx9ax5bp34rcf2c5gk11l5m";
|
sha256 = "1nja7n6pc45azd3l1xyvav89855lvcgwabrvf34rps81dbl8cnl4";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "krebs";
|
else "krebs";
|
||||||
_file = <stockholm> + "/krebs/1systems/${name}/source.nix";
|
_file = <stockholm> + "/krebs/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) [
|
evalSource (toString _file) [
|
||||||
{
|
{
|
||||||
@ -16,6 +21,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
nixpkgs.git = {
|
nixpkgs.git = {
|
||||||
url = https://github.com/NixOS/nixpkgs;
|
url = https://github.com/NixOS/nixpkgs;
|
||||||
ref = "c5bc83b503dfb29eb27c1deb0268f15c1858e7ce"; # nixos-17.09 @ 2018-02-27
|
ref = "c5bc83b503dfb29eb27c1deb0268f15c1858e7ce"; # nixos-17.09 @ 2018-02-27
|
||||||
|
@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "lass";
|
else "lass";
|
||||||
_file = <stockholm> + "/lass/1systems/${name}/source.nix";
|
_file = <stockholm> + "/lass/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) [
|
evalSource (toString _file) [
|
||||||
{
|
{
|
||||||
@ -17,6 +22,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
}
|
}
|
||||||
override
|
override
|
||||||
]
|
]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
all any concatMapStringsSep concatStringsSep const filter flip
|
all any attrNames concatMapStringsSep concatStringsSep const filter flip
|
||||||
genid hasSuffix head isInt isString length mergeOneOption mkOption
|
genid hasSuffix head isInt isString length mergeOneOption mkOption
|
||||||
mkOptionType optional optionalAttrs optionals range splitString
|
mkOptionType optional optionalAttrs optionals range splitString
|
||||||
stringLength substring test testString typeOf;
|
stringLength substring test testString typeOf;
|
||||||
@ -231,61 +231,58 @@ rec {
|
|||||||
source = submodule ({ config, ... }: {
|
source = submodule ({ config, ... }: {
|
||||||
options = {
|
options = {
|
||||||
type = let
|
type = let
|
||||||
types = [
|
known-types = attrNames source-types;
|
||||||
"file"
|
type-candidates = filter (k: config.${k} != null) known-types;
|
||||||
"git"
|
|
||||||
"pass"
|
|
||||||
"symlink"
|
|
||||||
];
|
|
||||||
in mkOption {
|
in mkOption {
|
||||||
type = enum types;
|
default = if length type-candidates == 1
|
||||||
default = let
|
then head type-candidates
|
||||||
cands = filter (k: config.${k} != null) types;
|
|
||||||
in
|
|
||||||
if length cands == 1
|
|
||||||
then head cands
|
|
||||||
else throw "cannot determine type";
|
else throw "cannot determine type";
|
||||||
|
type = enum known-types;
|
||||||
};
|
};
|
||||||
file = let
|
file = mkOption {
|
||||||
file-path = (file-source.getSubOptions "FIXME").path.type;
|
|
||||||
in mkOption {
|
|
||||||
type = nullOr (either file-source file-path);
|
|
||||||
default = null;
|
|
||||||
apply = x:
|
apply = x:
|
||||||
if file-path.check x
|
if absolute-pathname.check x
|
||||||
then { path = x; }
|
then { path = x; }
|
||||||
else x;
|
else x;
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either absolute-pathname source-types.file);
|
||||||
};
|
};
|
||||||
git = mkOption {
|
git = mkOption {
|
||||||
type = nullOr git-source;
|
|
||||||
default = null;
|
default = null;
|
||||||
|
type = nullOr source-types.git;
|
||||||
};
|
};
|
||||||
pass = mkOption {
|
pass = mkOption {
|
||||||
type = nullOr pass-source;
|
|
||||||
default = null;
|
default = null;
|
||||||
|
type = nullOr source-types.pass;
|
||||||
};
|
};
|
||||||
symlink = let
|
pipe = mkOption {
|
||||||
symlink-target = (symlink-source.getSubOptions "FIXME").target.type;
|
apply = x:
|
||||||
in mkOption {
|
if absolute-pathname.check x
|
||||||
type = nullOr (either symlink-source symlink-target);
|
then { command = x; }
|
||||||
|
else x;
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either absolute-pathname source-types.pipe);
|
||||||
|
};
|
||||||
|
symlink = mkOption {
|
||||||
|
type = nullOr (either pathname source-types.symlink);
|
||||||
default = null;
|
default = null;
|
||||||
apply = x:
|
apply = x:
|
||||||
if symlink-target.check x
|
if pathname.check x
|
||||||
then { target = x; }
|
then { target = x; }
|
||||||
else x;
|
else x;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
file-source = submodule {
|
source-types = {
|
||||||
|
file = submodule {
|
||||||
options = {
|
options = {
|
||||||
path = mkOption {
|
path = mkOption {
|
||||||
type = absolute-pathname;
|
type = absolute-pathname;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
git = submodule {
|
||||||
git-source = submodule {
|
|
||||||
options = {
|
options = {
|
||||||
ref = mkOption {
|
ref = mkOption {
|
||||||
type = str; # TODO types.git.ref
|
type = str; # TODO types.git.ref
|
||||||
@ -295,8 +292,7 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
pass = submodule {
|
||||||
pass-source = submodule {
|
|
||||||
options = {
|
options = {
|
||||||
dir = mkOption {
|
dir = mkOption {
|
||||||
type = absolute-pathname;
|
type = absolute-pathname;
|
||||||
@ -306,8 +302,14 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
pipe = submodule {
|
||||||
symlink-source = submodule {
|
options = {
|
||||||
|
command = mkOption {
|
||||||
|
type = absolute-pathname;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
symlink = submodule {
|
||||||
options = {
|
options = {
|
||||||
target = mkOption {
|
target = mkOption {
|
||||||
type = pathname; # TODO relative-pathname
|
type = pathname; # TODO relative-pathname
|
||||||
@ -315,6 +317,7 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
suffixed-str = suffs:
|
suffixed-str = suffs:
|
||||||
mkOptionType {
|
mkOptionType {
|
||||||
|
@ -13,6 +13,11 @@ let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "makefu";
|
else "makefu";
|
||||||
_file = <stockholm> + "/makefu/1systems/${name}/source.nix";
|
_file = <stockholm> + "/makefu/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
# TODO: automate updating of this ref + cherry-picks
|
# TODO: automate updating of this ref + cherry-picks
|
||||||
ref = "51810e0"; # nixos-17.09 @ 2018-02-14
|
ref = "51810e0"; # nixos-17.09 @ 2018-02-14
|
||||||
# + do_sqlite3 ruby: 55a952be5b5
|
# + do_sqlite3 ruby: 55a952be5b5
|
||||||
@ -42,6 +47,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
}
|
}
|
||||||
(mkIf ( musnix ) {
|
(mkIf ( musnix ) {
|
||||||
musnix.git = {
|
musnix.git = {
|
||||||
|
@ -4,6 +4,11 @@ host@{ name, override ? {} }: let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "mv";
|
else "mv";
|
||||||
_file = <stockholm> + "/mv/1systems/${name}/source.nix";
|
_file = <stockholm> + "/mv/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) [
|
evalSource (toString _file) [
|
||||||
{
|
{
|
||||||
@ -18,6 +23,7 @@ in
|
|||||||
mv = "/home/mv/secrets/${name}";
|
mv = "/home/mv/secrets/${name}";
|
||||||
};
|
};
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
}
|
}
|
||||||
override
|
override
|
||||||
]
|
]
|
||||||
|
@ -4,6 +4,11 @@ host@{ name, secure ? false }: let
|
|||||||
then "buildbot"
|
then "buildbot"
|
||||||
else "nin";
|
else "nin";
|
||||||
_file = <stockholm> + "/nin/1systems/${name}/source.nix";
|
_file = <stockholm> + "/nin/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) {
|
evalSource (toString _file) {
|
||||||
nixos-config.symlink = "stockholm/nin/1systems/${name}/config.nix";
|
nixos-config.symlink = "stockholm/nin/1systems/${name}/config.nix";
|
||||||
|
@ -42,6 +42,9 @@ let {
|
|||||||
kirk = {
|
kirk = {
|
||||||
cgit.desc = "IRC tools";
|
cgit.desc = "IRC tools";
|
||||||
};
|
};
|
||||||
|
kops = {
|
||||||
|
cgit.desc = "deployment tools";
|
||||||
|
};
|
||||||
load-env = {};
|
load-env = {};
|
||||||
loldns = {
|
loldns = {
|
||||||
cgit.desc = "toy DNS server";
|
cgit.desc = "toy DNS server";
|
||||||
|
@ -6,6 +6,11 @@ with import <stockholm/lib>;
|
|||||||
}@host: let
|
}@host: let
|
||||||
builder = if dummy_secrets then "buildbot" else "tv";
|
builder = if dummy_secrets then "buildbot" else "tv";
|
||||||
_file = <stockholm> + "/tv/1systems/${name}/source.nix";
|
_file = <stockholm> + "/tv/1systems/${name}/source.nix";
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = map import [
|
||||||
|
<stockholm/krebs/5pkgs>
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
evalSource (toString _file) [
|
evalSource (toString _file) [
|
||||||
{
|
{
|
||||||
@ -20,6 +25,7 @@ in
|
|||||||
tv = "/home/tv/secrets/${name}";
|
tv = "/home/tv/secrets/${name}";
|
||||||
};
|
};
|
||||||
stockholm.file = toString <stockholm>;
|
stockholm.file = toString <stockholm>;
|
||||||
|
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
|
||||||
}
|
}
|
||||||
(mkIf (builder == "tv") {
|
(mkIf (builder == "tv") {
|
||||||
secrets-common.file = "/home/tv/secrets/common";
|
secrets-common.file = "/home/tv/secrets/common";
|
||||||
|
Loading…
Reference in New Issue
Block a user