17 lines
647 B
Nix
17 lines
647 B
Nix
# Lock parsing only reads this one file when no import token can occur. A
|
|||
|
|
# conservative substring probe also sends comments/URLs containing "import"
|
||
|
|
# through the complete-source path. Fragment names may have any extension.
|
||
|
|
{ source }:
|
||
|
|
let
|
||
|
|
regular = ((builtins.readDir source)."quixos.lock" or null) == "regular";
|
||
|
|
text = if regular then builtins.readFile (source + "/quixos.lock") else "import";
|
||
|
|
in
|
||
|
|
if builtins.replaceStrings [ "import" ] [ "" ] text != text then
|
||
|
|
source
|
||
|
|
else
|
||
|
|
builtins.path {
|
||
|
|
path = source;
|
||
|
|
name = "qx-lock-source";
|
||
|
|
filter = filename: _: filename == toString source || filename == "${source}/quixos.lock";
|
||
|
|
}
|