From 09ff35bab5aa50252a516abf7ffaafc69ea3f342 Mon Sep 17 00:00:00 2001 From: kat witch Date: Thu, 22 Jul 2021 22:02:49 +0100 Subject: [PATCH] nf-update shell helper --- shell.nix | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/shell.nix b/shell.nix index 86483399..29f587ec 100644 --- a/shell.nix +++ b/shell.nix @@ -2,6 +2,26 @@ meta = import ./default.nix; config = meta; inherit (meta) pkgs; + fixedSources = removeAttrs config.sources [ "__functor" ]; + nf-update = pkgs.writeShellScriptBin "nf-update" '' + TEMP=$(mktemp -d) + git init -q $TEMP + ${pkgs.lib.concatStringsSep "\n" (pkgs.lib.mapAttrsToList (source: spec: let + update = "niv update ${source}"; + fetch = "timeout 30 git -C $TEMP fetch -q --depth 1 ${spec.repo} ${spec.branch}:source-${source}"; + revision = "$(git -C $TEMP show-ref -s source-${source})"; + isGit = pkgs.lib.hasPrefix "https://" spec.repo or ""; + git = '' + if ${fetch}; then + echo "${source}:${spec.branch} HEAD at ${revision}" >&2 + ${update} -r ${revision} || true + else + echo "failed to fetch latest revision from ${spec.repo}" >&2 + fi + ''; + auto = "${update} || true"; + in if isGit then git else auto) fixedSources)} + ''; nf-actions = pkgs.writeShellScriptBin "nf-actions" '' export START_DIR="$PWD" cd ${toString ./.} @@ -20,7 +40,7 @@ done cd $START_DIR ''; - nf-test = pkgs.writeShellScriptBin "nf-test" '' + nf-actions-test = pkgs.writeShellScriptBin "nf-actions-test" '' export START_DIR="$PWD" cd ${toString ./.} export NF_CONFIG_ROOT=${toString ./.}/ci @@ -41,8 +61,9 @@ in pkgs.mkShell { nativeBuildInputs = with pkgs; [ inetutils + nf-update nf-actions - nf-test + nf-actions-test ] ++ config.runners.lazy.nativeBuildInputs; HISTFILE = toString (config.deploy.dataDir + "/.history");