aboutsummaryrefslogtreecommitdiffstats
path: root/acispy/pfiles.py
diff options
context:
space:
mode:
Diffstat (limited to 'acispy/pfiles.py')
-rw-r--r--acispy/pfiles.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/acispy/pfiles.py b/acispy/pfiles.py
new file mode 100644
index 0000000..8a80a14
--- /dev/null
+++ b/acispy/pfiles.py
@@ -0,0 +1,38 @@
+# Copyright (c) 2017 Weitian LI <liweitianux@live.com>
+# MIT license
+#
+# Weitian LI
+# 2017-02-06
+
+"""
+Prepare the CIAO parameter files and setup the PFILES environment
+variable to keep the pfiles locally, in order to avoid the conflicts
+between multiple instance of the same CIAO tools.
+"""
+
+import os
+import subprocess
+import shutil
+
+
+def setup_pfiles(tools):
+ """
+ Copy the parameter files of the specified tools to the current
+ working directory, and setup the ``PFILES`` environment variable.
+
+ Parameters
+ ----------
+ tools : list[str]
+ Name list of the tools to be set up
+ """
+ for tool in tools:
+ pfile = subprocess.check_output([
+ "paccess", tool
+ ]).decode("utf-8").strip()
+ subprocess.check_call(["punlearn", tool])
+ try:
+ shutil.copy(pfile, ".")
+ except shutil.SameFileError:
+ pass
+ # Setup the ``PFILES`` environment variable
+ os.environ["PFILES"] = "./:" + os.environ["PFILES"]