scroll auto discovery
This commit is contained in:
parent
60b5164a8a
commit
8769d9de00
9 changed files with 44 additions and 20 deletions
|
|
@ -10,7 +10,7 @@
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
lib = import ./nix/deno;
|
lib = import ./nix;
|
||||||
shelf = import ./shelf {
|
shelf = import ./shelf {
|
||||||
inherit pkgs system lib;
|
inherit pkgs system lib;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
10
nix/default.nix
Normal file
10
nix/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
let
|
||||||
|
lib = {
|
||||||
|
buildDenoCache = import ./deno/buildCache.nix { self = lib; };
|
||||||
|
readDenoScroll = import ./deno/readScroll.nix { self = lib; };
|
||||||
|
buildSharedDenoCache = import ./deno/buildSharedCache.nix { self = lib; };
|
||||||
|
makeDenoShelfSetup = import ./deno/makeShelfSetup.nix { self = lib; };
|
||||||
|
discoverScrolls = import ./discoverScrolls.nix { self = lib; };
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
let
|
|
||||||
lib = {
|
|
||||||
buildDenoCache = import ./buildDenoCache.nix { self = lib; };
|
|
||||||
readDenoScroll = import ./readDenoScroll.nix { self = lib; };
|
|
||||||
buildSharedDenoCache = import ./buildSharedDenoCache.nix { self = lib; };
|
|
||||||
makeDenoShelfSetup = import ./makeDenoShelfSetup.nix { self = lib; };
|
|
||||||
};
|
|
||||||
in
|
|
||||||
lib
|
|
||||||
29
nix/discoverScrolls.nix
Normal file
29
nix/discoverScrolls.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{ self }:
|
||||||
|
{ scrollsDir }:
|
||||||
|
let
|
||||||
|
allSubDirs = builtins.attrNames (
|
||||||
|
builtins.readDir scrollsDir
|
||||||
|
);
|
||||||
|
|
||||||
|
directoriesOnly = builtins.filter (name:
|
||||||
|
let
|
||||||
|
type = (builtins.readDir scrollsDir).${name};
|
||||||
|
in type == "directory"
|
||||||
|
) allSubDirs;
|
||||||
|
|
||||||
|
hasScrollNix = dir:
|
||||||
|
let
|
||||||
|
scrollPath = scrollsDir + "/${dir}/scroll.nix";
|
||||||
|
in builtins.pathExists scrollPath;
|
||||||
|
|
||||||
|
scrollDirs = builtins.filter hasScrollNix directoriesOnly;
|
||||||
|
missingScrollDirs = builtins.filter (dir: !(hasScrollNix dir)) directoriesOnly;
|
||||||
|
|
||||||
|
warnings =
|
||||||
|
if builtins.length missingScrollDirs > 0
|
||||||
|
then builtins.trace
|
||||||
|
"Warning: Found directories without scroll.nix: ${builtins.toString missingScrollDirs}"
|
||||||
|
null
|
||||||
|
else null;
|
||||||
|
in
|
||||||
|
scrollDirs
|
||||||
|
|
@ -2,23 +2,17 @@
|
||||||
let
|
let
|
||||||
denoScrollsDir = ./deno;
|
denoScrollsDir = ./deno;
|
||||||
|
|
||||||
|
scrollDirs = lib.discoverScrolls {
|
||||||
|
scrollsDir = denoScrollsDir;
|
||||||
|
};
|
||||||
|
|
||||||
mkScroll = subDir: lib.readDenoScroll {
|
mkScroll = subDir: lib.readDenoScroll {
|
||||||
inherit pkgs system subDir;
|
inherit pkgs system subDir;
|
||||||
scrollsDir = denoScrollsDir;
|
scrollsDir = denoScrollsDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
scrollDirs = [
|
|
||||||
"hjq"
|
|
||||||
"uses-hjq"
|
|
||||||
];
|
|
||||||
|
|
||||||
scrolls = builtins.map mkScroll scrollDirs;
|
scrolls = builtins.map mkScroll scrollDirs;
|
||||||
|
|
||||||
# shelfSetup =
|
|
||||||
# lib.collectDenoCaches {
|
|
||||||
# inherit pkgs;
|
|
||||||
# denoCacheDrvs = builtins.map (s: s.env) scrolls;
|
|
||||||
# };
|
|
||||||
sharedCache = lib.buildSharedDenoCache {
|
sharedCache = lib.buildSharedDenoCache {
|
||||||
inherit pkgs system;
|
inherit pkgs system;
|
||||||
scrollsDir = denoScrollsDir;
|
scrollsDir = denoScrollsDir;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue