aboutsummaryrefslogtreecommitdiff
path: root/cbc
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-06-26 01:00:19 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-06-26 01:00:19 -0400
commit3f6e82f632027904e2912664cbb1c60cdc79a509 (patch)
tree58eb6e25884663912ccb3c4add4565c7f375851b /cbc
parent973725aa1985ca4fab62bff0afe29a8fb8f96b6d (diff)
downloadcbc-3f6e82f632027904e2912664cbb1c60cdc79a509.tar.gz
* Big ole fixes.
* No more inline webserver, get your own, or run cbc/server.py manually. * Will refuse to rebuild packages if build number matches the installed version of the same package * Introduced cbc.utils, because cbcbuild was getting ugly.
Diffstat (limited to 'cbc')
-rw-r--r--cbc/__init__.py3
-rw-r--r--cbc/exceptions.py3
-rw-r--r--cbc/meta.py2
-rw-r--r--cbc/server.py31
4 files changed, 29 insertions, 10 deletions
diff --git a/cbc/__init__.py b/cbc/__init__.py
index 4dbca99..150b0f4 100644
--- a/cbc/__init__.py
+++ b/cbc/__init__.py
@@ -1,3 +1,4 @@
from . import environment
from . import meta
-from . import server \ No newline at end of file
+from . import server
+from . import utils \ No newline at end of file
diff --git a/cbc/exceptions.py b/cbc/exceptions.py
index 7acf55f..dc6128f 100644
--- a/cbc/exceptions.py
+++ b/cbc/exceptions.py
@@ -2,4 +2,7 @@ class IncompleteEnv(Exception):
pass
class MetaDataError(Exception):
+ pass
+
+class CondaBuildError(Exception):
pass \ No newline at end of file
diff --git a/cbc/meta.py b/cbc/meta.py
index f7065c8..ed1baaa 100644
--- a/cbc/meta.py
+++ b/cbc/meta.py
@@ -5,7 +5,7 @@ And yeah, conda supports Jinja2, but ugh... No.
import os
import conda_build.metadata
import yaml
-from configparser import SafeConfigParser, ExtendedInterpolation, ConfigParser
+from configparser import SafeConfigParser, ExtendedInterpolation
from collections import OrderedDict
from .environment import Environment
from .exceptions import MetaDataError
diff --git a/cbc/server.py b/cbc/server.py
index 37355ed..1598302 100644
--- a/cbc/server.py
+++ b/cbc/server.py
@@ -1,3 +1,4 @@
+import argparse
import os
import http.server
import socketserver
@@ -24,17 +25,31 @@ class FileServer(object):
if run:
self.run()
- def run(self):
+ def run(self, forever=False):
os.chdir(self.root)
socketserver.TCPServer.allow_reuse_address = True
self.httpd = Server(('localhost', self.port), self.handler, True)
- #self.httpd.allow_reuse_address = True
- #self.httpd.server_bind()
- #self.httpd.server_activate()
print('{0} active on port {1} ({2})'.format(self.__class__.__name__, self.port, self.root))
-
- th = Thread(target=self.httpd.handle_request, args=(), daemon=True)
- th.start()
+ if not forever:
+ self.httpd.handle_request()
+ else:
+ self.httpd.serve_forever()
+ self.close()
def close(self):
- self.httpd.server_close() \ No newline at end of file
+ self.httpd.server_close()
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-r', '--root', default=os.path.abspath(os.curdir), help='Path to files')
+ parser.add_argument('-p', '--port', type=int, default=8888, help='TCP port')
+ parser.add_argument('-s', '--single', action='store_false')
+ args = parser.parse_args()
+
+ fileserver = FileServer(args.port, args.root)
+ fileserver.run(forever=args.single)
+
+
+
+
+ \ No newline at end of file