Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
env.update(extra_env)
env['PORT'] = '10180'
env['SITE_ORIGIN'] = 'localhost:10180'
env['CONTENT_ORIGIN'] = 'localhost:10180'
env['GA_ID'] = ''
env['NODE_ENV'] = 'production'
env['LOG_QUERY_LIMIT'] = '0'
env['ENABLE_WATCHDOG'] = 'false'
server_out = Capture()
env_print = ['%s=%s' % (name, value) for name, value in sorted(extra_env.items())]
if env_print:
env_print = ' (%s)' % ' '.join(env_print)
else:
env_print = ''
print(' Starting server%s' % env_print)
server = run('./bin/run-server --no-auto', cwd=project_base, env=env, stdout=server_out, async_=True)
server_options = extra_env
time.sleep(3)
text = []
while True:
if server.commands[0].process and server.commands[0].poll():
print(' Server exited with code %s' % server.commands[0].poll())
text.extend(server_out.readlines())
for line in text:
print(' %s' % line.rstrip())
print(" %s" % ("-" * 60))
raise Exception("Server didn't start")
line = server_out.readline()
if line:
text.append(line)
if 'Database is now at level' in line:
# Last log message before the server is running
def _nosetests():
nosetests_cmd = os.path.join(curdir, 'bin', 'nosetests')
zato_packages = ' '.join([item for item in glob.iglob(os.path.join(curdir, 'zato-*'))])
run('{} {} --nocapture'.format(nosetests_cmd, zato_packages))
while not command_done.is_set():
try:
for line in out:
echo_info(line.strip())
except TypeError:
pass
try:
for line in err:
warn(line.strip())
except TypeError:
pass
sleep(0.05)
p = run(cmd, stdout=out, stderr=err, env=self._env, async=True)
if self._verbose:
Thread(target=redirect).start()
try:
p.wait()
finally:
# make sure the console redirect thread is properly shutting down
command_done.set()
except OSError:
error('command: "{0}" could not be executed (not found?)'.format(cmd))
def query_clarity(self, query, index):
cmd = "%s/clarity -query='%s' -index=%s 2> %s | head -n1 | cut -f2 -d'=' | cut -d' ' -f3 " % (self.bin_path,query,index,os.devnull)
p = sarge.run(cmd, stdout=sarge.Capture())
try:
f = float(p.stdout.text)
return f
except Exception as e:
print('Query Clarity exception: %s' % (e))
return 0.0
if stopper is not None:
cmd += " -stopper.word=%s " % (stopper)
if qexp == True:
cmd += " -fbDocs=%d -fbTerms=%d " % (expTerms, expDocs)
if showerrors == True:
cmd += (" > %s " % (outpath))
else:
cmd += (" 2> %s > %s " % (os.devnull, outpath))
if debug:
print("Running: %s " % (cmd))
r = sarge.run(cmd).returncode
if r == 0:
return TrecRun(os.path.join(result_dir, result_file))
else:
print("ERROR with command %s" % (cmd))
return None
def extract_topics(self, topics, topic_format):
cmd = ""
if topic_format is "TREC":
cmd += "%s/extract_topics -i %s -o topics" % (self.bin_path, topics)
else:
cmd += "cp %s topics.title" % (topics)
sarge.run(cmd)
def run_command_with_sarge(cmd, throw=True):
from sarge import run, Capture
# TODO: p = run(..., stdout=Capture(buffer_size=-1), stderr=Capture(buffer_size=-1))
# TODO: Then log p.stdout. while process not complete in realtime and to file
p = run(cmd, async_=True)
# Allow streaming stdout and stderr to user while command executes
p.close()
if p.returncode != 0:
if throw:
raise RuntimeError('Command failed, see above')