forked from pub-solar/os
21 lines
523 B
Nix
21 lines
523 B
Nix
{ lib, ... }:
|
|
{
|
|
# returns matching part of _regex_ _string_; null indicates failure.
|
|
rgxToString = regex: string:
|
|
let
|
|
match =
|
|
let
|
|
head = lib.substring 0 1 regex;
|
|
sec = lib.substring 1 2 regex;
|
|
in
|
|
if head == "^"
|
|
|| head == "."
|
|
|| (sec == "*" || sec == "+" || sec == "?")
|
|
then builtins.match "(${regex}).*" string
|
|
else builtins.match ".*(${regex}).*" string;
|
|
in
|
|
if lib.isList match
|
|
then lib.head match
|
|
else null;
|
|
}
|