Merge remote-tracking branch 'prism/tv'

This commit is contained in:
lassulus 2018-03-06 20:21:02 +01:00
commit 995d1b0c7c
14 changed files with 115 additions and 66 deletions

View File

@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
then "buildbot"
else "jeschli";
_file = <stockholm> + "/jeschli/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) [
{
@ -17,6 +22,7 @@ in
jeschli = "${getEnv "HOME"}/secrets/${name}";
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
}
override
]

View File

@ -5,7 +5,11 @@ let
nixos-version = "${nixos-version-id} (${config.system.nixosCodeName})";
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-pretty-name = "stockholm ${stockholm-version}";

View File

@ -18,10 +18,10 @@ let
type = types.attrsOf (types.submodule ({ config, ... }: {
options = {
origin = mkOption {
type = types.git-source;
type = types.source-types.git;
};
mirror = mkOption {
type = types.git-source;
type = types.source-types.git;
};
};
config = {
@ -31,7 +31,7 @@ let
}));
};
latest = mkOption {
type = types.nullOr types.git-source;
type = types.nullOr types.source-types.git;
default = null;
};
timerConfig = mkOption {

View File

@ -16,12 +16,12 @@ in
stdenv.mkDerivation rec {
name = "populate";
version = "2.1.0";
version = "2.3.0";
src = fetchgit {
url = http://cgit.ni.krebsco.de/populate;
rev = "refs/tags/v${version}";
sha256 = "0cr50y6h6nps0qgpmi01h0z9wzpv2704y5zgx2salk1grkmvcfmh";
sha256 = "05zr132k1s3a1cc879lvhb83hax7dbfmsbrnxmh7dxjcdg3yhxd7";
};
phases = [

View File

@ -216,7 +216,6 @@
init.env = pkgs.writeText "init.env" /* sh */ ''
export HOSTNAME="$(${pkgs.nettools}/bin/hostname)"
export STOCKHOLM_VERSION="''${STOCKHOLM_VERSION-$(${cmds.get-version})}"
export quiet
export system
@ -251,7 +250,6 @@
"$target_user@$target_host" -p "$target_port" \
cd "$target_path/stockholm" \; \
NIX_PATH=$(${pkgs.quote}/bin/quote "$target_path") \
STOCKHOLM_VERSION=$(${pkgs.quote}/bin/quote "$STOCKHOLM_VERSION") \
nix-shell --run "$(${pkgs.quote}/bin/quote "
${lib.concatStringsSep " " (lib.mapAttrsToList
(name: opt: /* sh */

View File

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
name = "urlwatch-${version}";
version = "2.7";
version = "2.8";
src = fetchFromGitHub {
owner = "thp";
repo = "urlwatch";
rev = version;
sha256 = "0fx964z73yv08b1lpymmjsigf6929zx9ax5bp34rcf2c5gk11l5m";
sha256 = "1nja7n6pc45azd3l1xyvav89855lvcgwabrvf34rps81dbl8cnl4";
};
propagatedBuildInputs = with python3Packages; [

View File

@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
then "buildbot"
else "krebs";
_file = <stockholm> + "/krebs/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) [
{
@ -16,6 +21,7 @@ in
};
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
nixpkgs.git = {
url = https://github.com/NixOS/nixpkgs;
ref = "c5bc83b503dfb29eb27c1deb0268f15c1858e7ce"; # nixos-17.09 @ 2018-02-27

View File

@ -4,6 +4,11 @@ host@{ name, secure ? false, override ? {} }: let
then "buildbot"
else "lass";
_file = <stockholm> + "/lass/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) [
{
@ -17,6 +22,7 @@ in
};
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
}
override
]

View File

@ -2,7 +2,7 @@
let
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
mkOptionType optional optionalAttrs optionals range splitString
stringLength substring test testString typeOf;
@ -231,90 +231,93 @@ rec {
source = submodule ({ config, ... }: {
options = {
type = let
types = [
"file"
"git"
"pass"
"symlink"
];
known-types = attrNames source-types;
type-candidates = filter (k: config.${k} != null) known-types;
in mkOption {
type = enum types;
default = let
cands = filter (k: config.${k} != null) types;
in
if length cands == 1
then head cands
else throw "cannot determine type";
default = if length type-candidates == 1
then head type-candidates
else throw "cannot determine type";
type = enum known-types;
};
file = let
file-path = (file-source.getSubOptions "FIXME").path.type;
in mkOption {
type = nullOr (either file-source file-path);
default = null;
file = mkOption {
apply = x:
if file-path.check x
if absolute-pathname.check x
then { path = x; }
else x;
default = null;
type = nullOr (either absolute-pathname source-types.file);
};
git = mkOption {
type = nullOr git-source;
default = null;
type = nullOr source-types.git;
};
pass = mkOption {
type = nullOr pass-source;
default = null;
type = nullOr source-types.pass;
};
symlink = let
symlink-target = (symlink-source.getSubOptions "FIXME").target.type;
in mkOption {
type = nullOr (either symlink-source symlink-target);
pipe = mkOption {
apply = x:
if absolute-pathname.check x
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;
apply = x:
if symlink-target.check x
if pathname.check x
then { target = x; }
else x;
};
};
});
file-source = submodule {
options = {
path = mkOption {
type = absolute-pathname;
source-types = {
file = submodule {
options = {
path = mkOption {
type = absolute-pathname;
};
};
};
};
git-source = submodule {
options = {
ref = mkOption {
type = str; # TODO types.git.ref
};
url = mkOption {
type = str; # TODO types.git.url
git = submodule {
options = {
ref = mkOption {
type = str; # TODO types.git.ref
};
url = mkOption {
type = str; # TODO types.git.url
};
};
};
};
pass-source = submodule {
options = {
dir = mkOption {
type = absolute-pathname;
};
name = mkOption {
type = pathname; # TODO relative-pathname
pass = submodule {
options = {
dir = mkOption {
type = absolute-pathname;
};
name = mkOption {
type = pathname; # TODO relative-pathname
};
};
};
};
symlink-source = submodule {
options = {
target = mkOption {
type = pathname; # TODO relative-pathname
pipe = submodule {
options = {
command = mkOption {
type = absolute-pathname;
};
};
};
symlink = submodule {
options = {
target = mkOption {
type = pathname; # TODO relative-pathname
};
};
};
};
};
suffixed-str = suffs:
mkOptionType {

View File

@ -13,6 +13,11 @@ let
then "buildbot"
else "makefu";
_file = <stockholm> + "/makefu/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
# TODO: automate updating of this ref + cherry-picks
ref = "51810e0"; # nixos-17.09 @ 2018-02-14
# + do_sqlite3 ruby: 55a952be5b5
@ -42,6 +47,7 @@ in
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
}
(mkIf ( musnix ) {
musnix.git = {

View File

@ -4,6 +4,11 @@ host@{ name, override ? {} }: let
then "buildbot"
else "mv";
_file = <stockholm> + "/mv/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) [
{
@ -18,6 +23,7 @@ in
mv = "/home/mv/secrets/${name}";
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
}
override
]

View File

@ -4,6 +4,11 @@ host@{ name, secure ? false }: let
then "buildbot"
else "nin";
_file = <stockholm> + "/nin/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) {
nixos-config.symlink = "stockholm/nin/1systems/${name}/config.nix";

View File

@ -42,6 +42,9 @@ let {
kirk = {
cgit.desc = "IRC tools";
};
kops = {
cgit.desc = "deployment tools";
};
load-env = {};
loldns = {
cgit.desc = "toy DNS server";

View File

@ -6,6 +6,11 @@ with import <stockholm/lib>;
}@host: let
builder = if dummy_secrets then "buildbot" else "tv";
_file = <stockholm> + "/tv/1systems/${name}/source.nix";
pkgs = import <nixpkgs> {
overlays = map import [
<stockholm/krebs/5pkgs>
];
};
in
evalSource (toString _file) [
{
@ -20,6 +25,7 @@ in
tv = "/home/tv/secrets/${name}";
};
stockholm.file = toString <stockholm>;
stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version";
}
(mkIf (builder == "tv") {
secrets-common.file = "/home/tv/secrets/common";