aboutsummaryrefslogtreecommitdiffstats
path: root/roles/library/filepath.py
diff options
context:
space:
mode:
authorMarek Szwałkiewicz <marek.szwalkiewicz@external.t-mobile.pl>2023-03-01 12:27:28 +0100
committerMarek Szwałkiewicz <marek.szwalkiewicz@external.t-mobile.pl>2023-03-03 13:46:02 +0100
commit70fa03898ee412e30b6b87cf961004bf16ccaef4 (patch)
tree10cca3196bd5db69ee643316365a00f1276dba04 /roles/library/filepath.py
parent0399d9842c2a5670e4ee21d45343d2ac168eee2d (diff)
[GATING] Add configuration for Azure3 gating in the fork of chained-ci
This change includes: * moving submodules of chained-ci-roles and chained-ci-vue as static folders to the repo (they were quite old and not updated for some time) * create azure access artifacts * add config for azure3 gating pipeline Issue-ID: INT-2207 Signed-off-by: Marek Szwałkiewicz <marek.szwalkiewicz@external.t-mobile.pl> Change-Id: Idb475c166d78f10ed4204153ab634110aa9093f6
Diffstat (limited to 'roles/library/filepath.py')
-rw-r--r--roles/library/filepath.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/roles/library/filepath.py b/roles/library/filepath.py
new file mode 100644
index 0000000..356f5fb
--- /dev/null
+++ b/roles/library/filepath.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+
+import os
+from urllib.parse import quote
+
+class FilterModule(object):
+ def filters(self):
+ return {
+ 'filepath': self.filepath
+ }
+
+ def filepath(self, path, *filename):
+ #
+ # path: a string or a list of string that contains successive parts
+ # of the path. Nul or empty parts are removed
+ # filename: the optionnal filename to be used after the path. It may
+ # be specified using multiple args to be concatenate (useful
+ # when building dynamic names in ansible/jinja templates)
+ #
+ '''build a gitlab filepath given `path' and `filename'.'''
+
+ if path is not None:
+ if not isinstance(path, list):
+ path = [path]
+ path = list(filter(None, path))
+ if path:
+ path = os.path.normpath(os.path.join(path[0], *path[1:]))
+
+ if filename:
+ filename = ''.join(list(filter(None, filename)))
+
+ if path and filename:
+ path = os.path.join(path, filename)
+ elif filename:
+ path = filename
+
+ if path:
+ return quote(path, safe='')
+
+ return None