summaryrefslogtreecommitdiff
path: root/python/vyos
diff options
context:
space:
mode:
Diffstat (limited to 'python/vyos')
-rw-r--r--python/vyos/util.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/python/vyos/util.py b/python/vyos/util.py
index 7fea6cdc6..c318d58de 100644
--- a/python/vyos/util.py
+++ b/python/vyos/util.py
@@ -221,6 +221,19 @@ def write_file(fname, data, defaultonfailure=None, user=None, group=None):
return defaultonfailure
raise e
+def copy_file(source, destination, mkdstdir=False, user=None, group=None):
+ """
+ Copy file from source to destination. Can optionally create the destination
+ dir if it does not exist. Can optionally change the dir and file ownership.
+ """
+ import shutil
+ if mkdstdir:
+ dirname = os.path.dirname(destination)
+ if not os.path.isdir(dirname):
+ makedir(dirname, user, group)
+
+ shutil.copyfile(source, destination)
+ chown(destination, user, group)
def read_json(fname, defaultonfailure=None):
"""