.
diff --git a/tools/ports/__init__.py b/tools/ports/__init__.py
index 44d65f6..c61daf9 100644
--- a/tools/ports/__init__.py
+++ b/tools/ports/__init__.py
@@ -13,26 +13,42 @@
ports_dir = os.path.dirname(os.path.abspath(__file__))
-def read_ports():
+def load_port(port):
expected_attrs = ['get', 'clear', 'process_args', 'show', 'needed']
+ ports.append(port)
+ ports_by_name[port.name] = port
+ for a in expected_attrs:
+ assert hasattr(port, a), 'port %s is missing %s' % (port, a)
+ if not hasattr(port, 'process_dependencies'):
+ port.process_dependencies = lambda x: 0
+ if not hasattr(port, 'deps'):
+ port.deps = []
+
+def read_ports():
for filename in os.listdir(ports_dir):
if not filename.endswith('.py') or filename == '__init__.py':
continue
filename = os.path.splitext(filename)[0]
port = __import__(filename, globals(), level=1)
- ports.append(port)
port.name = filename
- ports_by_name[port.name] = port
- for a in expected_attrs:
- assert hasattr(port, a), 'port %s is missing %s' % (port, a)
- if not hasattr(port, 'process_dependencies'):
- port.process_dependencies = lambda x: 0
- if not hasattr(port, 'deps'):
- port.deps = []
+ load_port(port)
- for dep in port.deps:
- if dep not in ports_by_name:
- exit_with_error('unknown dependency in port: %s' % dep)
+ contrib_dir = os.path.join(ports_dir, 'contrib')
+ for filename in os.listdir(contrib_dir):
+ if not filename.endswith('.py') or filename == '__init__.py':
+ continue
+ filename = os.path.splitext(filename)[0]
+ print(filename)
+ port = __import__('contrib.' + filename, globals(), level=1, fromlist=[None])
+ print(port)
+ port.name = filename
+ load_port(port)
+
+ for port in ports:
+ for dep in port.deps:
+ if dep not in ports_by_name:
+ exit_with_error('unknown dependency in port: %s' % dep)
+
read_ports()
diff --git a/tools/ports/contib/README.md b/tools/ports/contrib/README.md
similarity index 100%
rename from tools/ports/contib/README.md
rename to tools/ports/contrib/README.md
diff --git a/tools/ports/contrib/__init__.py b/tools/ports/contrib/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/ports/contrib/__init__.py
diff --git a/tools/ports/contib/libarchive.py b/tools/ports/contrib/libarchive.py
similarity index 94%
rename from tools/ports/contib/libarchive.py
rename to tools/ports/contrib/libarchive.py
index 569da29..5e53745 100644
--- a/tools/ports/contib/libarchive.py
+++ b/tools/ports/contrib/libarchive.py
@@ -29,8 +29,8 @@
ports.install_headers(dest_path)
# build
- srcs = 'adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c
- inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c'.split()
+ srcs = 'adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c'
+ 'inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c'.split()
commands = []
o_s = []
for src in srcs: