diff --git a/bin/coco-brunch b/bin/coco-brunch index f26edd21f..5df38d739 100755 --- a/bin/coco-brunch +++ b/bin/coco-brunch @@ -1,8 +1,16 @@ -#!/bin/bash - -ulimit -n 10000 -cd ~/Desktop/coco -until brunch w --config brunch.coffee; do - echo "Brunch Crashed. Recompiling entire project. Press Ctrl-C quickly to quit." >&2 - sleep 1 -done +#!/usr/bin/python +from subprocess import call +import subprocess +import os +import time +import sys +#TODO: Upgrade this so it works on windows +#These scripts will be placed in coco/bin +current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) +coco_path = os.getenv("COCO_DIR",os.path.join(current_directory,os.pardir)) +brunch_path = coco_path + os.sep + "node_modules" + os.sep + ".bin" + os.sep + "brunch" +subprocess.Popen("ulimit -n 10000",shell=True) +while True: + call(brunch_path + " w --config " + coco_path + os.sep + "brunch.coffee",shell=True,cwd=coco_path) + print("Brunch crashed. Press control+C within 1 second to quit.") + time.sleep(1) diff --git a/bin/coco-dev-server b/bin/coco-dev-server index edd4aaac1..e6cc1813c 100755 --- a/bin/coco-dev-server +++ b/bin/coco-dev-server @@ -1,5 +1,12 @@ -#!/bin/bash +#!/usr/bin/python +from subprocess import call +import os +import sys +#TODO: Upgrade this so it works on windows +#These scripts will be placed in coco/bin +current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) +coco_path = os.getenv("COCO_DIR",os.path.join(current_directory,os.pardir)) +nodemon_path = coco_path + os.sep + "node_modules" + os.sep + ".bin" + os.sep + "nodemon" + +call(nodemon_path + " . --ext \".coffee|.js\" --watch server --watch app.js --watch server_config.js",shell=True,cwd=coco_path) -cd ~/Desktop/coco -node_modules/.bin/nodemon . --ext ".coffee|.js" --watch server --watch app.js --watch server_config.js -# https://github.com/remy/nodemon/issues/145 prevents us from going to 0.7.6+ until we understand what is going on diff --git a/bin/coco-mongodb b/bin/coco-mongodb index dd82e5d28..49ff627f3 100755 --- a/bin/coco-mongodb +++ b/bin/coco-mongodb @@ -1,4 +1,90 @@ -#!/bin/bash +#!/usr/bin/python +from subprocess import call +import os +import sys +import subprocess +#copied straight from the python 3 standard library +def which(cmd, mode=os.F_OK | os.X_OK, path=None): + """Given a command, mode, and a PATH string, return the path which + conforms to the given mode on the PATH, or None if there is no such + file. + + `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result + of os.environ.get("PATH"), or can be overridden with a custom search + path. + + """ + # Check that a given file can be accessed with the correct mode. + # Additionally check that `file` is not a directory, as on Windows + # directories pass the os.access check. + def _access_check(fn, mode): + return (os.path.exists(fn) and os.access(fn, mode) + and not os.path.isdir(fn)) + + # If we're given a path with a directory part, look it up directly rather + # than referring to PATH directories. This includes checking relative to the + # current directory, e.g. ./script + if os.path.dirname(cmd): + if _access_check(cmd, mode): + return cmd + return None + + if path is None: + path = os.environ.get("PATH", os.defpath) + if not path: + return None + path = path.split(os.pathsep) + + if sys.platform == "win32": + # The current directory takes precedence on Windows. + if not os.curdir in path: + path.insert(0, os.curdir) + + # PATHEXT is necessary to check on Windows. + pathext = os.environ.get("PATHEXT", "").split(os.pathsep) + # See if the given file matches any of the expected path extensions. + # This will allow us to short circuit when given "python.exe". + # If it does match, only test that one, otherwise we have to try + # others. + if any(cmd.lower().endswith(ext.lower()) for ext in pathext): + files = [cmd] + else: + files = [cmd + ext for ext in pathext] + else: + # On other platforms you don't have things like PATHEXT to tell you + # what file suffixes are executable, so just pass on cmd as-is. + files = [cmd] + + seen = set() + for dir in path: + normdir = os.path.normcase(dir) + if not normdir in seen: + seen.add(normdir) + for thefile in files: + name = os.path.join(dir, thefile) + if _access_check(name, mode): + return name + return None + +#TODO: Upgrade this so it works on windows +#These scripts will be placed in coco/bin + +current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) +if which("mongod") and "v2.5.4" in subprocess.check_output("mongod --version",shell=True): + mongo_executable = "mongod" +else: + mongo_executable = None + print("Mongod 2.5.4 wasn't found. Searching in bin directory...") + +mongo_directory = current_directory + os.sep + u"mongo" +if not mongo_executable: + mongo_executable = os.environ.get("COCO_MONGOD_PATH",mongo_directory + os.sep + u"mongod") + if not os.path.exists(mongo_executable): + raise EnvironmentError("Mongo 2.5.4 executable not found.") + print("Using mongo executable: " + str(mongo_executable)) +mongo_db_path = os.path.abspath(os.path.join(current_directory,os.pardir)) + os.sep + u"mongo" +if not os.path.exists(mongo_db_path): + os.mkdir(mongo_db_path) +mongo_arguments = [mongo_executable + u" --setParameter textSearchEnabled=true --dbpath=" + mongo_db_path] +call(mongo_arguments,shell=True) -mkdir -p ~/Desktop/coco/mongo -mongod --setParameter textSearchEnabled=true --dbpath ~/Desktop/coco/mongo diff --git a/bin/startApp.py b/bin/startApp.py deleted file mode 100644 index 6cd56523a..000000000 --- a/bin/startApp.py +++ /dev/null @@ -1,12 +0,0 @@ -__author__ = u'schmatz' -from subprocess import call -import os -import sys -#TODO: Upgrade this so it works on windows -#These scripts will be placed in coco/bin -current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) -coco_path = os.getenv("COCO_DIR",os.path.join(current_directory,os.pardir)) -nodemon_path = coco_path + os.sep + "node_modules" + os.sep + ".bin" + os.sep + "nodemon" - -call(nodemon_path + " . --ext \".coffee|.js\" --watch server --watch app.js --watch server_config.js",shell=True,cwd=coco_path) - diff --git a/bin/startBrunch.py b/bin/startBrunch.py deleted file mode 100644 index dfd894ccd..000000000 --- a/bin/startBrunch.py +++ /dev/null @@ -1,16 +0,0 @@ -__author__ = u'schmatz' -from subprocess import call -import subprocess -import os -import time -import sys -#TODO: Upgrade this so it works on windows -#These scripts will be placed in coco/bin -current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) -coco_path = os.getenv("COCO_DIR",os.path.join(current_directory,os.pardir)) -brunch_path = coco_path + os.sep + "node_modules" + os.sep + ".bin" + os.sep + "brunch" -subprocess.Popen("ulimit -n 10000",shell=True) -while True: - call(brunch_path + " w --config " + coco_path + os.sep + "brunch.coffee",shell=True,cwd=coco_path) - print("Brunch crashed. Press control+C within 1 second to quit.") - time.sleep(1) \ No newline at end of file diff --git a/bin/startDatabase.py b/bin/startDatabase.py deleted file mode 100644 index 73be5ac2a..000000000 --- a/bin/startDatabase.py +++ /dev/null @@ -1,90 +0,0 @@ -__author__ = u'schmatz' -from subprocess import call -import os -import sys -import subprocess -#copied straight from the python 3 standard library -def which(cmd, mode=os.F_OK | os.X_OK, path=None): - """Given a command, mode, and a PATH string, return the path which - conforms to the given mode on the PATH, or None if there is no such - file. - - `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result - of os.environ.get("PATH"), or can be overridden with a custom search - path. - - """ - # Check that a given file can be accessed with the correct mode. - # Additionally check that `file` is not a directory, as on Windows - # directories pass the os.access check. - def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) - and not os.path.isdir(fn)) - - # If we're given a path with a directory part, look it up directly rather - # than referring to PATH directories. This includes checking relative to the - # current directory, e.g. ./script - if os.path.dirname(cmd): - if _access_check(cmd, mode): - return cmd - return None - - if path is None: - path = os.environ.get("PATH", os.defpath) - if not path: - return None - path = path.split(os.pathsep) - - if sys.platform == "win32": - # The current directory takes precedence on Windows. - if not os.curdir in path: - path.insert(0, os.curdir) - - # PATHEXT is necessary to check on Windows. - pathext = os.environ.get("PATHEXT", "").split(os.pathsep) - # See if the given file matches any of the expected path extensions. - # This will allow us to short circuit when given "python.exe". - # If it does match, only test that one, otherwise we have to try - # others. - if any(cmd.lower().endswith(ext.lower()) for ext in pathext): - files = [cmd] - else: - files = [cmd + ext for ext in pathext] - else: - # On other platforms you don't have things like PATHEXT to tell you - # what file suffixes are executable, so just pass on cmd as-is. - files = [cmd] - - seen = set() - for dir in path: - normdir = os.path.normcase(dir) - if not normdir in seen: - seen.add(normdir) - for thefile in files: - name = os.path.join(dir, thefile) - if _access_check(name, mode): - return name - return None - -#TODO: Upgrade this so it works on windows -#These scripts will be placed in coco/bin - -current_directory = os.path.dirname(os.path.realpath(sys.argv[0])) -if which("mongod") and "v2.5.4" in subprocess.check_output("mongod --version",shell=True): - mongo_executable = "mongod" -else: - mongo_executable = None - print("Mongod 2.5.4 wasn't found. Searching in bin directory...") - -mongo_directory = current_directory + os.sep + u"mongo" -if not mongo_executable: - mongo_executable = os.environ.get("COCO_MONGOD_PATH",mongo_directory + os.sep + u"mongod") - if not os.path.exists(mongo_executable): - raise FileNotFoundError("Mongo executable not found.") - print("Using mongo executable: " + str(mongo_executable)) -mongo_db_path = os.path.abspath(os.path.join(current_directory,os.pardir)) + os.sep + u"mongo" -if not os.path.exists(mongo_db_path): - os.mkdir(mongo_db_path) -mongo_arguments = [mongo_executable + u" --setParameter textSearchEnabled=true --dbpath=" + mongo_db_path] -call(mongo_arguments,shell=True) - diff --git a/scripts/devSetup/factories.py b/scripts/devSetup/factories.py index df47d0ea6..6ec266301 100644 --- a/scripts/devSetup/factories.py +++ b/scripts/devSetup/factories.py @@ -63,8 +63,8 @@ class SetupFactory(object): subprocess.call("chmod -R 755 " + self.config.directory.root_dir + os.sep + "coco" + os.sep + "bin",shell=True) print("Done! If you want to start the server, head into /coco/bin and run ") - print("1. sudo python startDatabase.py") - print("2. sudo python startBrunch.py") + print("1. sudo ./coco-mongodb") + print("2. sudo ./coco-brunch") print("3. python startApp.py") print("Once brunch is done, visit http://localhost:3000!") #print self.mongo.bashrc_string()