mirror of https://github.com/dirtbags/moth.git
Makefile - transfer .py files instead of .pyc
histogram.py - now locks the histogram file before making a new one. puzzler.py - fixed name error mkpuzzles.py - now handles subdirectories
This commit is contained in:
parent
72b6c9766d
commit
cb7f0cc055
19
Makefile
19
Makefile
|
@ -1,21 +1,18 @@
|
|||
DESTDIR = target
|
||||
|
||||
PYCDIR = $(DESTDIR)/usr/lib/python3.1/site-packages
|
||||
PYDIR = $(DESTDIR)/usr/lib/python3.1/site-packages
|
||||
CTFDIR = $(DESTDIR)/usr/lib/ctf
|
||||
WWWDIR = $(DESTDIR)/usr/lib/www
|
||||
|
||||
FAKE = fakeroot -s fake -i fake
|
||||
INSTALL = $(FAKE) install
|
||||
|
||||
PYC = __init__.pyc
|
||||
PYC += config.pyc points.pyc teams.pyc
|
||||
PYC += register.pyc scoreboard.pyc puzzler.pyc
|
||||
PYC += flagd.pyc pointsd.pyc pointscli.pyc
|
||||
PYC += histogram.pyc irc.pyc
|
||||
|
||||
all: ctf.tce
|
||||
|
||||
target: $(PYC)
|
||||
push: ctf.tce
|
||||
netcat -l -q 0 -p 3333 < ctf.tce
|
||||
|
||||
target:
|
||||
$(INSTALL) -d --mode=0755 --owner=100 $(DESTDIR)/var/lib/ctf
|
||||
|
||||
$(INSTALL) -d --mode=0755 --owner=100 $(DESTDIR)/var/lib/ctf/survey
|
||||
|
@ -23,8 +20,8 @@ target: $(PYC)
|
|||
$(INSTALL) -d $(DESTDIR)/var/lib/ctf/disabled
|
||||
touch $(DESTDIR)/var/lib/ctf/disabled/survey
|
||||
|
||||
$(INSTALL) -d $(PYCDIR)/ctf
|
||||
$(INSTALL) $(PYC) $(PYCDIR)/ctf
|
||||
$(INSTALL) -d $(PYDIR)/ctf
|
||||
$(INSTALL) ctf/*.py $(PYDIR)/ctf
|
||||
|
||||
$(INSTALL) -d $(DESTDIR)/usr/lib/python2.6/site-packages/ctf
|
||||
$(INSTALL) ctf/__init__.py $(DESTDIR)/usr/lib/python2.6/site-packages/ctf
|
||||
|
@ -55,7 +52,7 @@ ctf.tce: target
|
|||
|
||||
clean:
|
||||
rm -rf target
|
||||
rm -f fake ctf.tce $(PYC)
|
||||
rm -f fake ctf.tce
|
||||
|
||||
ctf/%.pyc: ctf/%.py
|
||||
python3 -c 'from ctf import $(notdir $*)'
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#! /usr/bin/env python3
|
||||
|
||||
import fcntl
|
||||
import time
|
||||
import os
|
||||
import tempfile
|
||||
|
@ -64,8 +65,18 @@ plot %(plot)s\n''' % {'plot': ','.join(plotparts),
|
|||
'pngout': pngout})
|
||||
instructions.flush()
|
||||
|
||||
gp = os.system('gnuplot %s 2>/dev/null </dev/null' % instructions.name)
|
||||
os.rename("%s,tmp" % pngout, pngout)
|
||||
lock = open('%s,lock' % pngout, 'a')
|
||||
try:
|
||||
fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB)
|
||||
except:
|
||||
return
|
||||
|
||||
try:
|
||||
gp = os.system('gnuplot %s 2>/dev/null </dev/null' % instructions.name)
|
||||
os.rename("%s,tmp" % pngout, pngout)
|
||||
finally:
|
||||
fcntl.flock(lock, fcntl.LOCK_UN)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
@ -157,7 +157,7 @@ def main():
|
|||
# Show available puzzles in category
|
||||
show_puzzles(cat, cat_dir)
|
||||
else:
|
||||
thekeys = get_key(cat, points)
|
||||
thekey = get_key(cat, points)
|
||||
if not teams.chkpasswd(team, passwd):
|
||||
start_html('Wrong password')
|
||||
end_html()
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import os
|
||||
import shutil
|
||||
import optparse
|
||||
import config
|
||||
from ctf import config
|
||||
|
||||
p = optparse.OptionParser()
|
||||
p.add_option('-p', '--puzzles', dest='puzzles', default='puzzles',
|
||||
|
@ -83,7 +83,11 @@ for cat in os.listdir(opts.puzzles):
|
|||
if files:
|
||||
f.write('<ul>\n')
|
||||
for fn, path in files:
|
||||
shutil.copy(path, outdir)
|
||||
if os.path.isdir(path):
|
||||
shutil.copytree(path, os.path.join(outdir, fn))
|
||||
else:
|
||||
shutil.copy(path, outdir)
|
||||
|
||||
if not fn.startswith(','):
|
||||
f.write('<li><a href="%s">%s</a></li>\n' % (fn, fn))
|
||||
f.write('</ul>\n')
|
||||
|
|
Loading…
Reference in New Issue