aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cgitize/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'cgitize/utils.py')
-rw-r--r--cgitize/utils.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/cgitize/utils.py b/cgitize/utils.py
index 2f91939..64b419a 100644
--- a/cgitize/utils.py
+++ b/cgitize/utils.py
@@ -9,6 +9,7 @@ import os
import stat
import subprocess
import sys
+from urllib.parse import urlsplit, urlunsplit
@contextmanager
@@ -92,3 +93,22 @@ def protected_file(path):
yield
finally:
os.unlink(path)
+
+
+def url_replace_auth(url, username, password=None):
+ parts = urlsplit(url)
+ netloc = username
+ if password is not None:
+ netloc += f':{password}'
+ netloc += f'@{parts.hostname}'
+ if parts.port is not None:
+ netloc += f':{parts.port}'
+ parts = parts._replace(netloc=netloc)
+ return urlunsplit(parts)
+
+
+def url_remove_auth(url):
+ parts = urlsplit(url)
+ netloc = parts.hostname
+ parts = parts._replace(netloc=netloc)
+ return urlunsplit(parts)