aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2021-09-08 10:11:28 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2021-09-08 19:05:18 +0000
commitefeac961a76331d32a6a0bca7344a99f43d7af67 (patch)
tree16496af111067d1a3b634db3761714d7551f1673 /Mk
parent217c3e9d72809ea59cc041ee83bcc49080c9eef5 (diff)
downloadports-efeac961a76331d32a6a0bca7344a99f43d7af67.tar.gz
ports-efeac961a76331d32a6a0bca7344a99f43d7af67.zip
Scripts/split-url.awk: Add reverse function to stitch the URL back together
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Scripts/split-url.awk32
1 files changed, 32 insertions, 0 deletions
diff --git a/Mk/Scripts/split-url.awk b/Mk/Scripts/split-url.awk
index f62af4219ad6..8efc1b9c002a 100644
--- a/Mk/Scripts/split-url.awk
+++ b/Mk/Scripts/split-url.awk
@@ -1,3 +1,35 @@
+function join_url( s, query_keys, i) {
+ s = url["scheme"] "://"
+ if (url["user"]) {
+ s = s url["user"]
+ if (url["password"]) {
+ s = s ":" url["password"]
+ }
+ s = s "@"
+ }
+ s = s url["host"]
+ if (url["port"]) {
+ s = s ":" url["port"]
+ }
+ if (url["path"]) {
+ s = s url["path"]
+ }
+ if (url["query"]) {
+ split(url["query"], query_keys)
+ s = s "?"
+ for (i = 1; i <= length(query_keys); i++) {
+ s = s query_keys[i] "=" url["query", query_keys[i]]
+ if (i != length(query_keys)) {
+ s = s ";"
+ }
+ }
+ }
+ if (url["fragment"]) {
+ s = s "#" url["fragment"]
+ }
+ return s
+}
+
function split_url(s, url_scheme, url_fragment, url_query, url_query_parts, i, url_query_part, url_authority, url_auth, url_user, url_host) {
delete url
# scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]