aboutsummaryrefslogtreecommitdiff
path: root/ipcbuild.py
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunk@stsci.edu>2013-04-16 17:29:32 -0400
committerJoseph Hunkeler <jhunk@stsci.edu>2013-04-16 17:29:32 -0400
commitb58cd558d24143cead35a3f2da6b04bd521c5725 (patch)
tree197f8f529059a83f38665555c90e902db5f5b21b /ipcbuild.py
downloadipsutils-b58cd558d24143cead35a3f2da6b04bd521c5725.tar.gz
Initial commit
Diffstat (limited to 'ipcbuild.py')
-rw-r--r--ipcbuild.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/ipcbuild.py b/ipcbuild.py
new file mode 100644
index 0000000..ec082e0
--- /dev/null
+++ b/ipcbuild.py
@@ -0,0 +1,95 @@
+# Solaris 11 IPC
+# Automate package creation
+
+from pprint import pprint
+import shlex
+import ConfigParser
+import argparse
+import string
+
+class FakeSecHead(object):
+ """Found on stackoverflow, public domain code"""
+ def __init__(self, fp):
+ self.fp = fp
+ self.sechead = '[IPC]\n'
+ def readline(self):
+ if self.sechead:
+ try:
+ return self.sechead
+ finally:
+ self.sechead = None
+ else:
+ return self.fp.readline()
+'''
+class IPC_Config(object):
+ def __init__(self, ipcfile):
+ self._header = 'IPC'
+ self.config = ConfigParser.SafeConfigParser()
+ self._config_read(ipcfile)
+ print("{0:s} parsed".format(ipcfile))
+
+ def __iter__(self):
+ for i in self.config.items(self._header):
+ yield i
+
+ def __getitem__(self, option):
+ return self.config.get(self._header, option)
+
+ def _config_read(self, ipcfile):
+ """Wrapper for FakeSecHead"""
+ self.config.readfp(FakeSecHead(open(ipcfile)))
+'''
+
+class IPC_Config(object):
+ def __init__(self, ipcfile):
+
+ key_dict = {
+ 'name': '',
+ 'version': '',
+ 'release': '',
+ 'maintainer': '',
+ 'upstream_url': '',
+ 'description': '',
+ 'arch': '',
+ 'license': ''
+ }
+
+ script_dict = {
+ 'build': [],
+ 'prep': [],
+ 'install': [],
+ 'files': []
+ }
+
+ for key in key_dict:
+ for line in file(ipcfile).readlines():
+ parts = shlex.split(line)
+ if key + ":" in parts:
+ key_dict[key] = parts[1]
+
+ found_data = False
+ code_section = ['%build', '%prep', '%install', '%files']
+ for section in code_section:
+ for line in file(ipcfile).readlines():
+ parts = shlex.split(line)
+ if '%end' in parts:
+ found_data = False
+ if section in parts:
+ found_data = True
+ continue
+ if found_data:
+ script_dict[section.strip('%')].append(parts)
+
+
+ self.key_dict = key_dict
+ self.script_dict = script_dict
+
+class IPC_Build(IPC_Config):
+ def __init__(self, ipcfile):
+ super(IPC_Build, self).__init__(ipcfile)
+ print(self.key_dict['name'])
+
+
+testfile = "test.ipc"
+build = IPC_Build(testfile)
+