Merge pull request #238251 from xworld21/texlive-tlpdb-nix-better-sed

texlive.tlpdb.nix: better sed technique, missing texlive.infra dependency
This commit is contained in:
Dmitry Kalinkin
2023-06-17 14:30:03 -04:00
committed by GitHub
2 changed files with 4319 additions and 4318 deletions
+22 -24
View File
@@ -14,11 +14,11 @@ $a}
}
# form an attrmap per package
# ignore packages whose name contains "." (such as binaries)
:next-package
# ignore packages whose name contains "." (such as binaries) except for texlive.infra
/^name ([^.]+|texlive\.infra)$/,/^$/{
# quote package names, as some start with a number :-/
s/^name (.*)$/"\1" = {/p
# quote invalid names
s/^name ([0-9].*|texlive\.infra)$/"\1" = {/p
s/^name (.*)$/\1 = {/p
# extract revision
s/^revision ([0-9]*)$/ revision = \1;/p
@@ -37,33 +37,34 @@ $a}
s/^catalogue-version_(.*)/ version = "\1";/p
# extract deps
/^depend [^.]+$/{
s/^depend (.+)$/ deps = [\n "\1"/
/^depend ([^.]+|texlive\.infra)$/{
# open a list
i\ deps = [
# loop through following depend lines
:next
h ; N # save & read next line
s/\ndepend ([^.]+|texlive\.infra)$/\n "\1"/
s/\ndepend (.+)$//
t next # loop if the previous lines matched
:next-dep
s/^\n?depend ([^.]+|texlive\.infra)$/ "\1"/p # print dep
s/^.*$// # clear pattern space
N; /^\ndepend /b next-dep
x; s/$/\n ];/p ; x # print saved deps
s/^.*\n// # remove deps, resume processing
# close the list
i\ ];
D # restart cycle from the current line
}
# detect presence of notable files
/^runfiles /{
s/^runfiles .*$// # ignore the first line
s/^.*$// # ignore the first line
# read all files
:next-file
h ; N # save to hold space & read next line
s!\n (.+)$! \1! # save file name
t next-file # loop if the previous lines matched
N
s/\n / / # remove newline
t next-file # loop if previous line matched
x # work on saved lines in hold space
/ (RELOC|texmf-dist)\//i\ hasRunfiles = true;
/ tlpkg\//i\ hasTlpkg = true;
x # restore pattern space
s/^.*\n// # remove saved lines, resume processing
D # restart cycle from the current line
}
# extract postaction scripts (right now, at most one per package, so a string suffices)
@@ -75,8 +76,5 @@ $a}
/^execute\sAddFormat/i\ hasFormats = true;
# close attrmap
/^$/{
i};
b next-package
}
/^$/i};
}
File diff suppressed because it is too large Load Diff