formally conform to the TSV file format

• move internals.txt to internals.tsv (bonus: GitHub built-in rendering)
• add a header in the first line
• ignore first line for sort checking
• ignore first line for HTML rendering
This commit is contained in:
Michael Roitzsch
2022-01-02 14:56:28 +01:00
parent 5e92d0e636
commit 8d62d3e215
3 changed files with 13 additions and 11 deletions

View File

@@ -9,8 +9,9 @@ CHECK_TARGETS = check_files check_binaries check_manifests check_services
all: $(DB).lz check all: $(DB).lz check
ifneq ($(wildcard $(MY_INTERNALS)),) ifneq ($(wildcard $(MY_INTERNALS)),)
internals.txt: $(MY_INTERNALS) internals.tsv: $(MY_INTERNALS)
textutil -cat txt "$<" -output $@ printf 'Term\tDescription\n' > $@
textutil -cat txt $@ "$<" -output $@
xattr -c $@ xattr -c $@
endif endif
@@ -27,8 +28,8 @@ $(DB).lz: $(DB)
rm -rf dyld rm -rf dyld
endif endif
check: internals.txt check: internals.tsv
@LANG=en sort --ignore-case $< | diff -uw $< - @(head --lines=1 ; LANG=en sort --ignore-case) < $< | diff -uw $< -
@$(MAKE) --silent --jobs=1 $(CHECK_TARGETS) @$(MAKE) --silent --jobs=1 $(CHECK_TARGETS)
define VIEW define VIEW
@@ -163,15 +164,15 @@ $(DB_TARGETS)::
echo 'COMMIT TRANSACTION;' echo 'COMMIT TRANSACTION;'
# MARK: - check targets for internals.txt # MARK: - check targets for internals.tsv
check_files: internals.txt $(DB) check_files: internals.tsv $(DB)
printf '\033[1mchecking files...\033[m\n' >&2 printf '\033[1mchecking files...\033[m\n' >&2
grep -ow '~\?/[^,;]*' $< | sed -E 's/ \(.*\)$$//;s/^\/(etc|var)\//\/private&/' | \ grep -ow '~\?/[^,;]*' $< | sed -E 's/ \(.*\)$$//;s/^\/(etc|var)\//\/private&/' | \
sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM files WHERE path GLOB '&';|" | \ sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM files WHERE path GLOB '&';|" | \
sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}" sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}"
check_binaries: internals.txt $(DB) check_binaries: internals.tsv $(DB)
printf '\033[1mchecking command line tools...\033[m\n' >&2 printf '\033[1mchecking command line tools...\033[m\n' >&2
grep -o 'command line tools\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \ grep -o 'command line tools\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \
sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM files WHERE executable = true AND path GLOB '*/&';|" | \ sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM files WHERE executable = true AND path GLOB '*/&';|" | \
@@ -185,13 +186,13 @@ check_binaries: internals.txt $(DB)
sed "s/'/''/g;s/.*/SELECT count(*), '&' FROM strings WHERE string GLOB '*&*';/" | \ sed "s/'/''/g;s/.*/SELECT count(*), '&' FROM strings WHERE string GLOB '*&*';/" | \
sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}" sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}"
check_manifests: internals.txt $(DB) check_manifests: internals.tsv $(DB)
printf '\033[1mchecking extension points...\033[m\n' >&2 printf '\033[1mchecking extension points...\033[m\n' >&2
grep -o 'extension points\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \ grep -o 'extension points\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \
sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM info, json_each(plist, '$$.NSExtension') WHERE key = 'NSExtensionPointIdentifier' AND value = '&';|" | \ sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM info, json_each(plist, '$$.NSExtension') WHERE key = 'NSExtensionPointIdentifier' AND value = '&';|" | \
sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}" sqlite3 $(DB) | sed -n "/^0|/{s/^0|//;p;}"
check_services: internals.txt $(DB) check_services: internals.tsv $(DB)
printf '\033[1mchecking launchd services...\033[m\n' >&2 printf '\033[1mchecking launchd services...\033[m\n' >&2
grep -o 'launchd services\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \ grep -o 'launchd services\?: [^;]*' $< | sed 's/^[^:]*: //;s/ //g;s/([^)]*)//g' | tr , '\n' | \
sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM services, json_each(plist) WHERE key = 'Label' AND value = '&';|" | \ sed "s/'/''/g;s|.*|SELECT count(*), '&' FROM services, json_each(plist) WHERE key = 'Label' AND value = '&';|" | \

View File

@@ -12,7 +12,7 @@ class Converter {
generate() { generate() {
const dl = document.createElement("dl"); const dl = document.createElement("dl");
dl.setAttribute("class", "row"); dl.setAttribute("class", "row");
for (const rowText of this.text.split("\n")) for (const rowText of this.text.split("\n").slice(1))
if (rowText.length && rowText.toLowerCase().includes(this.filter.toLowerCase())) if (rowText.length && rowText.toLowerCase().includes(this.filter.toLowerCase()))
dl.append.apply(dl, this.generateRow(rowText)); dl.append.apply(dl, this.generateRow(rowText));
return dl; return dl;
@@ -54,7 +54,7 @@ class Converter {
document.addEventListener("DOMContentLoaded", event => { document.addEventListener("DOMContentLoaded", event => {
// load main content // load main content
fetch("internals.txt").then(function(response) { fetch("internals.tsv").then(function(response) {
if (!response.ok) return ""; if (!response.ok) return "";
return response.text(); return response.text();
}).then(function(text) { }).then(function(text) {

View File

@@ -1,3 +1,4 @@
Term Description
1TR One True Recovery; booting into macOS recovery on Apple Silicon by holding the power button to verify physical presence; enables interaction with SEP to change Boot Policy 1TR One True Recovery; booting into macOS recovery on Apple Silicon by holding the power button to verify physical presence; enables interaction with SEP to change Boot Policy
AA Apple account AA Apple account
AAC Automatic Assessment Configuration; AutomaticAssessmentConfiguration.framework; puts device in a locked mode for exam-style test applications AAC Automatic Assessment Configuration; AutomaticAssessmentConfiguration.framework; puts device in a locked mode for exam-style test applications
1 1TR Term One True Recovery; booting into macOS recovery on Apple Silicon by holding the power button to verify physical presence; enables interaction with SEP to change Boot Policy Description
1 Term Description
2 1TR 1TR One True Recovery; booting into macOS recovery on Apple Silicon by holding the power button to verify physical presence; enables interaction with SEP to change Boot Policy One True Recovery; booting into macOS recovery on Apple Silicon by holding the power button to verify physical presence; enables interaction with SEP to change Boot Policy
3 AA AA Apple account Apple account
4 AAC AAC Automatic Assessment Configuration; AutomaticAssessmentConfiguration.framework; puts device in a locked mode for exam-style test applications Automatic Assessment Configuration; AutomaticAssessmentConfiguration.framework; puts device in a locked mode for exam-style test applications