File tree Expand file tree Collapse file tree
lua/lint/linters/shellcheck_ebuild Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ * .html
Original file line number Diff line number Diff line change 1+ #! /usr/bin/sh
2+
3+ scriptDir=" $( realpath --canonicalize-missing " $0 /.." ) "
4+
5+ regenHTML=" $1 "
6+
7+ ebuildHTML=" $scriptDir /ebuild-vars.html"
8+
9+ endingTagSearch=false
10+ {
11+ [ ! -f " $ebuildHTML " ] || [ " $regenHTML " = true ]
12+ } &&
13+ curl --silent ' https://devmanual.gentoo.org/ebuild-writing/variables/index.html' > " $ebuildHTML "
14+
15+ echo " return [[" > " $scriptDir /ebuild-vars.lua"
16+
17+ while IFS=' ' read -r line; do
18+ $endingTagSearch && {
19+ case " $line " in
20+ ' </table>' )
21+ endingTagSearch=false
22+ ;;
23+ * )
24+ echo " $line "
25+ ;;
26+ esac
27+ } || {
28+ case " $line " in
29+ ' <h2 id="predefined-read-only-variables">' * )
30+ echo " $line "
31+ endingTagSearch=true
32+ ;;
33+ ' <h2 id="ebuild-defined-variables">' * )
34+ echo " $line "
35+ endingTagSearch=true
36+ ;;
37+ ' <h2 id="user-environment">' * )
38+ echo " $line "
39+ endingTagSearch=true
40+ ;;
41+ esac
42+ }
43+ done < " $ebuildHTML " |
44+ sed -nE ' s|^\s*<td><code class="docutils literal"><span class="pre">([A-Z][^<]*)</span></code></td>$|export \1|p' >> " $scriptDir /ebuild-vars.lua"
45+
46+ eclassParse (){
47+ eclassHTML=" $scriptDir /$1 -eclass.html"
48+
49+ endingTagSearch=false
50+ {
51+ [ ! -f " $eclassHTML " ] || [ " $regenHTML " = true ]
52+ } &&
53+ curl --silent " https://devmanual.gentoo.org/eclass-reference/$1 .eclass/index.html" > " $eclassHTML "
54+
55+ while IFS=' ' read -r line; do
56+ $endingTagSearch && {
57+ case " $line " in
58+ ' <H2' * )
59+ endingTagSearch=false
60+ ;;
61+ * )
62+ echo " $line "
63+ ;;
64+ esac
65+ } || {
66+ case " $line " in
67+ ' <H2 ID="' * ' ">ECLASS VARIABLES</H2>' )
68+ echo " $line "
69+ endingTagSearch=true
70+ ;;
71+ esac
72+ }
73+ done < " $eclassHTML " |
74+ sed -nE ' s|^<DT><B>([^<]*)<.+|export \1|p' >> " $scriptDir /ebuild-vars.lua"
75+ }
76+
77+ eclassGroupsHTML=" $scriptDir /eclass-list.html"
78+
79+ endingTagSearch=false
80+ {
81+ [ ! -f " $eclassGroupsHTML " ] || [ " $regenHTML " = true ]
82+ } &&
83+ curl --silent " https://devmanual.gentoo.org/eclass-reference/index.html" > " $eclassGroupsHTML "
84+
85+ sed -nE ' s|<li class="list-group-item"><a href="([^"]+)\.eclass.*|\1|p' " $eclassGroupsHTML " | while IFS=' ' read -r eclass; do
86+ eclassParse " $eclass "
87+ done
88+
89+ echo " ]]" >> " $scriptDir /ebuild-vars.lua"
90+
91+ sed -i -E ' /^export .*[&;].*/d' " $scriptDir /ebuild-vars.lua"
You can’t perform that action at this time.
0 commit comments