From: Alan T. DeKok Date: Fri, 31 Aug 2018 14:59:27 +0000 (-0400) Subject: add cross links to the output X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=afe1b58b76eb08434fe7c95cbf0b84cd8328232a;p=thirdparty%2Ffreeradius-server.git add cross links to the output --- diff --git a/scripts/asciidoc/conf2adoc b/scripts/asciidoc/conf2adoc index 9497ea3ee50..ae7e5f0d645 100755 --- a/scripts/asciidoc/conf2adoc +++ b/scripts/asciidoc/conf2adoc @@ -5,11 +5,32 @@ # Convert conf files to Asciidoc # # +use File::Basename; $was_raw = 0; $raw = 0; $blank = 0; +$script_dir = dirname(__FILE__); +$filename = "$script_dir/links.txt"; + +%links = {}; + +# +# Read the links file. +# +# @todo - have this script take multiple inputs, so that we don't +# have to read the links file on every file we convert. +# +open FILE, "<$filename" or die "Failed to open $filename: $!\n"; +while () { + chop; + ($name, $link) = split; + + $links{$name} = $link; +} +close FILE; + while (<>) { # # Skip editor commands @@ -76,9 +97,42 @@ while (<>) { print $prefix if defined $prefix; + $line = $_; + + my @words = split; + + # + # See if we can automagically make cross-links + # + foreach $word (@words) { + next if ($word eq '\`\`\`'); + + next if ($word !~ /^`(.*)`$/); + + # + # @todo - automatically add cross-links for: + # + # mods-available/ + # sites-available/ + # + # etc. + # + + next if (!$links{$1}); + + $link = "`link:" . $links{$1} . "[" . $1 . "]`"; + + # + # Yes, this is terrible. We should really just print each + # word individually, but that would also mess up (mildly) + # whitespace. + # + $line =~ s/$1/$link/g; + } + # # And print out the raw text. # - print; + print $line; } diff --git a/scripts/asciidoc/links.txt b/scripts/asciidoc/links.txt new file mode 100644 index 00000000000..801e43a83b8 --- /dev/null +++ b/scripts/asciidoc/links.txt @@ -0,0 +1,198 @@ +MS-CHAP-Challenge https://freeradius.org/rfc/rfc2548.html#MS-CHAP-Challenge +MS-CHAP-Response https://freeradius.org/rfc/rfc2548.html#MS-CHAP-Response +MS-CHAP-Domain https://freeradius.org/rfc/rfc2548.html#MS-CHAP-Domain +MS-CHAP-Error https://freeradius.org/rfc/rfc2548.html#MS-CHAP-Error +MS-CHAP-CPW-1 https://freeradius.org/rfc/rfc2548.html#MS-CHAP-CPW-1 +MS-CHAP-CPW-2 https://freeradius.org/rfc/rfc2548.html#MS-CHAP-CPW-2 +MS-CHAP-LM-Enc-PW https://freeradius.org/rfc/rfc2548.html#MS-CHAP-LM-Enc-PW +MS-CHAP-NT-Enc-PW https://freeradius.org/rfc/rfc2548.html#MS-CHAP-NT-Enc-PW +MS-CHAP2-Response https://freeradius.org/rfc/rfc2548.html#MS-CHAP2-Response +MS-CHAP2-Success https://freeradius.org/rfc/rfc2548.html#MS-CHAP2-Success +MS-CHAP2-CPW https://freeradius.org/rfc/rfc2548.html#MS-CHAP2-CPW +MS-CHAP-MPPE-Keys https://freeradius.org/rfc/rfc2548.html#MS-CHAP-MPPE-Keys +MS-MPPE-Send-Key https://freeradius.org/rfc/rfc2548.html#MS-MPPE-Send-Key +MS-MPPE-Recv-Key https://freeradius.org/rfc/rfc2548.html#MS-MPPE-Recv-Key +MS-MPPE-Encryption-Policy https://freeradius.org/rfc/rfc2548.html#MS-MPPE-Encryption-Policy +MS-MPPE-Encryption-Types https://freeradius.org/rfc/rfc2548.html#MS-MPPE-Encryption-Types +MS-BAP-Usage https://freeradius.org/rfc/rfc2548.html#MS-BAP-Usage +MS-Link-Utilization-Threshold https://freeradius.org/rfc/rfc2548.html#MS-Link-Utilization-Threshold +MS-Link-Drop-Time-Limit https://freeradius.org/rfc/rfc2548.html#MS-Link-Drop-Time-Limit +MS-Old-ARAP-Password https://freeradius.org/rfc/rfc2548.html#MS-Old-ARAP-Password +MS-New-ARAP-Password https://freeradius.org/rfc/rfc2548.html#MS-New-ARAP-Password +MS-ARAP-Password-Change-Reason https://freeradius.org/rfc/rfc2548.html#MS-ARAP-Password-Change-Reason +MS-ARAP-Challenge https://freeradius.org/rfc/rfc2548.html#MS-ARAP-Challenge +MS-RAS-Vendor https://freeradius.org/rfc/rfc2548.html#MS-RAS-Vendor +MS-RAS-Version https://freeradius.org/rfc/rfc2548.html#MS-RAS-Version +MS-Filter https://freeradius.org/rfc/rfc2548.html#MS-Filter +MS-Acct-Auth-Type https://freeradius.org/rfc/rfc2548.html#MS-Acct-Auth-Type +MS-Acct-EAP-Type https://freeradius.org/rfc/rfc2548.html#MS-Acct-EAP-Type +MS-Primary-DNS-Server https://freeradius.org/rfc/rfc2548.html#MS-Primary-DNS-Server +MS-Secondary-DNS-Server https://freeradius.org/rfc/rfc2548.html#MS-Secondary-DNS-Server +MS-Primary-NBNS-Server https://freeradius.org/rfc/rfc2548.html#MS-Primary-NBNS-Server +MS-Secondary-NBNS-Server https://freeradius.org/rfc/rfc2548.html#MS-Secondary-NBNS-Server +Keep-Alives https://freeradius.org/rfc/rfc2865.html#Keep-Alives +Access-Request https://freeradius.org/rfc/rfc2865.html#Access-Request +Access-Accept https://freeradius.org/rfc/rfc2865.html#Access-Accept +Access-Reject https://freeradius.org/rfc/rfc2865.html#Access-Reject +Access-Challenge https://freeradius.org/rfc/rfc2865.html#Access-Challenge +User-Name https://freeradius.org/rfc/rfc2865.html#User-Name +User-Password https://freeradius.org/rfc/rfc2865.html#User-Password +CHAP-Password https://freeradius.org/rfc/rfc2865.html#CHAP-Password +NAS-IP-Address https://freeradius.org/rfc/rfc2865.html#NAS-IP-Address +NAS-Port https://freeradius.org/rfc/rfc2865.html#NAS-Port +Service-Type https://freeradius.org/rfc/rfc2865.html#Service-Type +Framed-Protocol https://freeradius.org/rfc/rfc2865.html#Framed-Protocol +Framed-IP-Address https://freeradius.org/rfc/rfc2865.html#Framed-IP-Address +Framed-IP-Netmask https://freeradius.org/rfc/rfc2865.html#Framed-IP-Netmask +Framed-Routing https://freeradius.org/rfc/rfc2865.html#Framed-Routing +Filter-Id https://freeradius.org/rfc/rfc2865.html#Filter-Id +Framed-MTU https://freeradius.org/rfc/rfc2865.html#Framed-MTU +Framed-Compression https://freeradius.org/rfc/rfc2865.html#Framed-Compression +Login-IP-Host https://freeradius.org/rfc/rfc2865.html#Login-IP-Host +Login-Service https://freeradius.org/rfc/rfc2865.html#Login-Service +Login-TCP-Port https://freeradius.org/rfc/rfc2865.html#Login-TCP-Port +Reply-Message https://freeradius.org/rfc/rfc2865.html#Reply-Message +Callback-Number https://freeradius.org/rfc/rfc2865.html#Callback-Number +Callback-Id https://freeradius.org/rfc/rfc2865.html#Callback-Id +Framed-Route https://freeradius.org/rfc/rfc2865.html#Framed-Route +Framed-IPX-Network https://freeradius.org/rfc/rfc2865.html#Framed-IPX-Network +Vendor-Specific https://freeradius.org/rfc/rfc2865.html#Vendor-Specific +Session-Timeout https://freeradius.org/rfc/rfc2865.html#Session-Timeout +Idle-Timeout https://freeradius.org/rfc/rfc2865.html#Idle-Timeout +Termination-Action https://freeradius.org/rfc/rfc2865.html#Termination-Action +Called-Station-Id https://freeradius.org/rfc/rfc2865.html#Called-Station-Id +Calling-Station-Id https://freeradius.org/rfc/rfc2865.html#Calling-Station-Id +NAS-Identifier https://freeradius.org/rfc/rfc2865.html#NAS-Identifier +Proxy-State https://freeradius.org/rfc/rfc2865.html#Proxy-State +Login-LAT-Service https://freeradius.org/rfc/rfc2865.html#Login-LAT-Service +Login-LAT-Node https://freeradius.org/rfc/rfc2865.html#Login-LAT-Node +Login-LAT-Group https://freeradius.org/rfc/rfc2865.html#Login-LAT-Group +Framed-AppleTalk-Link https://freeradius.org/rfc/rfc2865.html#Framed-AppleTalk-Link +Framed-AppleTalk-Network https://freeradius.org/rfc/rfc2865.html#Framed-AppleTalk-Network +Framed-AppleTalk-Zone https://freeradius.org/rfc/rfc2865.html#Framed-AppleTalk-Zone +CHAP-Challenge https://freeradius.org/rfc/rfc2865.html#CHAP-Challenge +NAS-Port-Type https://freeradius.org/rfc/rfc2865.html#NAS-Port-Type +Port-Limit https://freeradius.org/rfc/rfc2865.html#Port-Limit +Login-LAT-Port https://freeradius.org/rfc/rfc2865.html#Login-LAT-Port +Accounting-Request https://freeradius.org/rfc/rfc2866.html#Accounting-Request +Accounting-Response https://freeradius.org/rfc/rfc2866.html#Accounting-Response +Acct-Status-Type https://freeradius.org/rfc/rfc2866.html#Acct-Status-Type +Acct-Delay-Time https://freeradius.org/rfc/rfc2866.html#Acct-Delay-Time +Acct-Input-Octets https://freeradius.org/rfc/rfc2866.html#Acct-Input-Octets +Acct-Output-Octets https://freeradius.org/rfc/rfc2866.html#Acct-Output-Octets +Acct-Session-Id https://freeradius.org/rfc/rfc2866.html#Acct-Session-Id +Acct-Authentic https://freeradius.org/rfc/rfc2866.html#Acct-Authentic +Acct-Session-Time https://freeradius.org/rfc/rfc2866.html#Acct-Session-Time +Acct-Input-Packets https://freeradius.org/rfc/rfc2866.html#Acct-Input-Packets +Acct-Output-Packets https://freeradius.org/rfc/rfc2866.html#Acct-Output-Packets +Acct-Terminate-Cause https://freeradius.org/rfc/rfc2866.html#Acct-Terminate-Cause +Acct-Multi-Session-Id https://freeradius.org/rfc/rfc2866.html#Acct-Multi-Session-Id +Acct-Link-Count https://freeradius.org/rfc/rfc2866.html#Acct-Link-Count +Tunnel-Start https://freeradius.org/rfc/rfc2867.html#Tunnel-Start +Tunnel-Stop https://freeradius.org/rfc/rfc2867.html#Tunnel-Stop +Tunnel-Reject https://freeradius.org/rfc/rfc2867.html#Tunnel-Reject +Tunnel-Link-Start https://freeradius.org/rfc/rfc2867.html#Tunnel-Link-Start +Tunnel-Link-Stop https://freeradius.org/rfc/rfc2867.html#Tunnel-Link-Stop +Tunnel-Link-Reject https://freeradius.org/rfc/rfc2867.html#Tunnel-Link-Reject +Acct-Tunnel-Connection https://freeradius.org/rfc/rfc2867.html#Acct-Tunnel-Connection +Acct-Tunnel-Packets-Lost https://freeradius.org/rfc/rfc2867.html#Acct-Tunnel-Packets-Lost +Tunnel-Type https://freeradius.org/rfc/rfc2868.html#Tunnel-Type +Tunnel-Medium-Type https://freeradius.org/rfc/rfc2868.html#Tunnel-Medium-Type +Tunnel-Client-Endpoint https://freeradius.org/rfc/rfc2868.html#Tunnel-Client-Endpoint +Tunnel-Server-Endpoint https://freeradius.org/rfc/rfc2868.html#Tunnel-Server-Endpoint +Tunnel-Password https://freeradius.org/rfc/rfc2868.html#Tunnel-Password +Tunnel-Private-Group-ID https://freeradius.org/rfc/rfc2868.html#Tunnel-Private-Group-ID +Tunnel-Assignment-ID https://freeradius.org/rfc/rfc2868.html#Tunnel-Assignment-ID +Tunnel-Preference https://freeradius.org/rfc/rfc2868.html#Tunnel-Preference +Tunnel-Client-Auth-ID https://freeradius.org/rfc/rfc2868.html#Tunnel-Client-Auth-ID +Tunnel-Server-Auth-ID https://freeradius.org/rfc/rfc2868.html#Tunnel-Server-Auth-ID +Tunnel-Type https://freeradius.org/rfc/rfc2868.html#Tunnel-Type +Tunnel-Medium-Type https://freeradius.org/rfc/rfc2868.html#Tunnel-Medium-Type +Acct-Input-Gigawords https://freeradius.org/rfc/rfc2869.html#Acct-Input-Gigawords +Acct-Output-Gigawords https://freeradius.org/rfc/rfc2869.html#Acct-Output-Gigawords +Event-Timestamp https://freeradius.org/rfc/rfc2869.html#Event-Timestamp +ARAP-Password https://freeradius.org/rfc/rfc2869.html#ARAP-Password +ARAP-Features https://freeradius.org/rfc/rfc2869.html#ARAP-Features +ARAP-Zone-Access https://freeradius.org/rfc/rfc2869.html#ARAP-Zone-Access +ARAP-Security https://freeradius.org/rfc/rfc2869.html#ARAP-Security +ARAP-Security-Data https://freeradius.org/rfc/rfc2869.html#ARAP-Security-Data +Password-Retry https://freeradius.org/rfc/rfc2869.html#Password-Retry +Connect-Info https://freeradius.org/rfc/rfc2869.html#Connect-Info +Configuration-Token https://freeradius.org/rfc/rfc2869.html#Configuration-Token +EAP-Message https://freeradius.org/rfc/rfc2869.html#EAP-Message +Message-Authenticator https://freeradius.org/rfc/rfc2869.html#Message-Authenticator +ARAP-Challenge-Response https://freeradius.org/rfc/rfc2869.html#ARAP-Challenge-Response +Acct-Interim-Interval https://freeradius.org/rfc/rfc2869.html#Acct-Interim-Interval +NAS-Port-Id https://freeradius.org/rfc/rfc2869.html#NAS-Port-Id +Framed-Pool https://freeradius.org/rfc/rfc2869.html#Framed-Pool +Message-Authenticator https://freeradius.org/rfc/rfc2869.html#Message-Authenticator +NAS-IPv6-Address https://freeradius.org/rfc/rfc3162.html#NAS-IPv6-Address +Framed-Interface-Id https://freeradius.org/rfc/rfc3162.html#Framed-Interface-Id +Framed-IPv6-Prefix https://freeradius.org/rfc/rfc3162.html#Framed-IPv6-Prefix +Login-IPv6-Host https://freeradius.org/rfc/rfc3162.html#Login-IPv6-Host +Framed-IPv6-Route https://freeradius.org/rfc/rfc3162.html#Framed-IPv6-Route +Framed-IPv6-Pool https://freeradius.org/rfc/rfc3162.html#Framed-IPv6-Pool +Filter-ID https://freeradius.org/rfc/rfc3580.html#Filter-ID +Digest-Response https://freeradius.org/rfc/rfc4590.html#Digest-Response +Digest-Realm https://freeradius.org/rfc/rfc4590.html#Digest-Realm +Digest-Nonce https://freeradius.org/rfc/rfc4590.html#Digest-Nonce +Digest-Response-Auth https://freeradius.org/rfc/rfc4590.html#Digest-Response-Auth +Digest-Nextnonce https://freeradius.org/rfc/rfc4590.html#Digest-Nextnonce +Digest-Method https://freeradius.org/rfc/rfc4590.html#Digest-Method +Digest-URI https://freeradius.org/rfc/rfc4590.html#Digest-URI +Digest-Qop https://freeradius.org/rfc/rfc4590.html#Digest-Qop +Digest-Algorithm https://freeradius.org/rfc/rfc4590.html#Digest-Algorithm +Digest-Entity-Body-Hash https://freeradius.org/rfc/rfc4590.html#Digest-Entity-Body-Hash +Digest-CNonce https://freeradius.org/rfc/rfc4590.html#Digest-CNonce +Digest-Nonce-Count https://freeradius.org/rfc/rfc4590.html#Digest-Nonce-Count +Digest-Username https://freeradius.org/rfc/rfc4590.html#Digest-Username +Digest-Opaque https://freeradius.org/rfc/rfc4590.html#Digest-Opaque +Digest-Auth-Param https://freeradius.org/rfc/rfc4590.html#Digest-Auth-Param +Digest-AKA-Auts https://freeradius.org/rfc/rfc4590.html#Digest-AKA-Auts +Digest-Domain https://freeradius.org/rfc/rfc4590.html#Digest-Domain +Digest-Stale https://freeradius.org/rfc/rfc4590.html#Digest-Stale +Digest-HA1 https://freeradius.org/rfc/rfc4590.html#Digest-HA1 +SIP-AOR https://freeradius.org/rfc/rfc4590.html#SIP-AOR +NAS-Filter-Rule https://freeradius.org/rfc/rfc4849.html#NAS-Filter-Rule +Digest-Response https://freeradius.org/rfc/rfc5090.html#Digest-Response +Change-of-Authorization https://freeradius.org/rfc/rfc5176.html#Change-of-Authorization +Error-Cause https://freeradius.org/rfc/rfc5176.html#Error-Cause +Framed-Management-Protocol https://freeradius.org/rfc/rfc5607.html#Framed-Management-Protocol +Management-Transport-Protection https://freeradius.org/rfc/rfc5607.html#Management-Transport-Protection +Management-Policy-Id https://freeradius.org/rfc/rfc5607.html#Management-Policy-Id +Management-Privilege-Level https://freeradius.org/rfc/rfc5607.html#Management-Privilege-Level +PKM-SS-Cert https://freeradius.org/rfc/rfc5904.html#PKM-SS-Cert +PKM-CA-Cert https://freeradius.org/rfc/rfc5904.html#PKM-CA-Cert +PKM-Config-Settings https://freeradius.org/rfc/rfc5904.html#PKM-Config-Settings +PKM-Cryptosuite-List https://freeradius.org/rfc/rfc5904.html#PKM-Cryptosuite-List +PKM-SAID https://freeradius.org/rfc/rfc5904.html#PKM-SAID +PKM-SA-Descriptor https://freeradius.org/rfc/rfc5904.html#PKM-SA-Descriptor +PKM-AUTH-Key https://freeradius.org/rfc/rfc5904.html#PKM-AUTH-Key +AUTH-Key https://freeradius.org/rfc/rfc5904.html#AUTH-Key +DS-Lite https://freeradius.org/rfc/rfc6519.html#DS-Lite +DS-Lite-Tunnel-Name https://freeradius.org/rfc/rfc6519.html#DS-Lite-Tunnel-Name +Mobile-Node-Identifier https://freeradius.org/rfc/rfc6572.html#Mobile-Node-Identifier +Service-Selection https://freeradius.org/rfc/rfc6572.html#Service-Selection +Chargeable-User-Identity https://freeradius.org/rfc/rfc6572.html#Chargeable-User-Identity +Framed-IPv6-Address https://freeradius.org/rfc/rfc6911.html#Framed-IPv6-Address +DNS-Server-IPv6-Address https://freeradius.org/rfc/rfc6911.html#DNS-Server-IPv6-Address +Route-IPv6-Information https://freeradius.org/rfc/rfc6911.html#Route-IPv6-Information +Delegated-IPv6-Prefix-Pool https://freeradius.org/rfc/rfc6911.html#Delegated-IPv6-Prefix-Pool +Stateful-IPv6-Address-Pool https://freeradius.org/rfc/rfc6911.html#Stateful-IPv6-Address-Pool +Vendor-Id https://freeradius.org/rfc/rfc6929.html#Vendor-Id +Extended-Type-1 https://freeradius.org/rfc/rfc6929.html#Extended-Type-1 +Extended-Type-2 https://freeradius.org/rfc/rfc6929.html#Extended-Type-2 +Extended-Type-3 https://freeradius.org/rfc/rfc6929.html#Extended-Type-3 +Extended-Type-4 https://freeradius.org/rfc/rfc6929.html#Extended-Type-4 +Long-Extended-Type-1 https://freeradius.org/rfc/rfc6929.html#Long-Extended-Type-1 +Long-Extended-Type-2 https://freeradius.org/rfc/rfc6929.html#Long-Extended-Type-2 +Vendor-Specific https://freeradius.org/rfc/rfc6929.html#Vendor-Specific +Extended-Vendor-Specific-1 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-1 +Extended-Vendor-Specific-2 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-2 +Extended-Vendor-Specific-3 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-3 +Extended-Vendor-Specific-4 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-4 +Extended-Vendor-Specific-5 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-5 +Extended-Vendor-Specific-6 https://freeradius.org/rfc/rfc6929.html#Extended-Vendor-Specific-6 +Class https://freeradius.org/rfc/rfc2865.html#Class +State https://freeradius.org/rfc/rfc2865.html#State +Delegated-IPv6-Prefix https://freeradius.org/rfc/rfc4818.html#Delegated-IPv6-Prefix