def AaParse.alias.one

bend-osdev-apparmor@0.1.0.0 · parse.bend:1136

import bend-osdev-apparmor@0.1.0.0/parse.bend as Parse
import Base
import bend-osdev-apparmor@0.1.0.0/text.bend as X
import bend-osdev-apparmor@0.1.0.0/glob.bend as G
import bend-osdev-apparmor@0.1.0.0/rule_file.bend as F

1136# a file rule copied under an alias whose source starts its pattern
1137def AaParse.alias.one(a: AaAlias, r: F.AaFileRule) -> List<&2, F.AaFileRule>:
1138  match a:
1139    case AaAlias{+from, +to}:
1140      match r:
1141        case F.AaFileRule{q, +text, g, p, e, tg}:
1142          Bool.pick(List<&2, F.AaFileRule>, Bool.and(Bool.not(X.AaText.is_nil(text)), X.AaText.prefix(text, from)), AaParse.alias.glob(G.AaGlob.parse(X.AaText.append(to, X.AaText.drop(X.AaText.len(from), text))), F.AaFileRule{q, X.AaText.append(to, X.AaText.drop(X.AaText.len(from), text)), g, p, e, tg}), Nil{})

Uses (13)

Used by (1)