From 5499d3a9679d1095ac9face45902bc5f6c7157b0 Mon Sep 17 00:00:00 2001
From: nhertz <nhertz@nrao.edu>
Date: Wed, 12 Aug 2020 16:29:55 -0600
Subject: [PATCH] Added simple recipe for building packages.

---
 src/build_packages/build_packages.py | 30 ++++++++++++++++++++++++++++
 src/build_packages/setup.py          |  8 ++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 src/build_packages/build_packages.py
 create mode 100644 src/build_packages/setup.py

diff --git a/src/build_packages/build_packages.py b/src/build_packages/build_packages.py
new file mode 100644
index 000000000..eef0b0a76
--- /dev/null
+++ b/src/build_packages/build_packages.py
@@ -0,0 +1,30 @@
+import subprocess
+
+def get_pkgs():
+    """
+    Run a couple shell commands to parse the metadata directory for its packages.
+    :return: List of packages in metadata directory
+    """
+    find_proc = subprocess.Popen(["find", "metadata",
+                                  "-name", "meta.yaml"],
+                                 stdout=subprocess.PIPE)
+    return subprocess.check_output(["sed", "-e", "s:metadata/::",
+                                    "-e", "s:/meta.yaml::"],
+                                   stdin=find_proc.stdout).decode('utf-8').split('\n')
+
+class Recipe:
+    def __init__(self, buildout, name, options):
+        self.options = options
+        self.pkgs = get_pkgs()
+
+    def install(self):
+        # self.options.created()
+        pkg = self.options['name']
+
+        if pkg == "all":
+            for p in self.pkgs:
+                subprocess.run(["conda", "build", "metadata/{}".format(p)])
+        else:
+            subprocess.run(["conda", "build", "metadata/{}".format(pkg)])
+
+    update = install
\ No newline at end of file
diff --git a/src/build_packages/setup.py b/src/build_packages/setup.py
new file mode 100644
index 000000000..50ef4f8bb
--- /dev/null
+++ b/src/build_packages/setup.py
@@ -0,0 +1,8 @@
+from setuptools import setup
+
+setup(
+    name='build_packages',
+    version='0.1',
+    py_modules = ['build_packages'],
+    entry_points = {"zc.buildout": ["default=build_packages:Recipe"]},
+)
\ No newline at end of file
-- 
GitLab