mirror of https://github.com/dirtbags/moth.git
58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
|
#! /usr/bin/env python3
|
||
|
|
||
|
import os
|
||
|
|
||
|
if 'home' in os.environ.get('SCRIPT_FILENAME', ''):
|
||
|
# We're a CGI running out of someone's home directory
|
||
|
config = {'global':
|
||
|
{'data_dir': '.',
|
||
|
'base_url': '.',
|
||
|
'css_url': 'ctf.css',
|
||
|
'diasbled_dir': 'disabled'
|
||
|
},
|
||
|
'puzzler':
|
||
|
{'dir': 'puzzles',
|
||
|
'ignore_dir': 'puzzler.ignore',
|
||
|
'cgi_url': 'puzzler.cgi',
|
||
|
'base_url': 'puzzler',
|
||
|
'keys_file': 'puzzler.keys',
|
||
|
},
|
||
|
}
|
||
|
else:
|
||
|
# An actual installation
|
||
|
config = {'global':
|
||
|
{'data_dir': '/var/lib/ctf',
|
||
|
'base_url': '/',
|
||
|
'css_url': '/ctf.css',
|
||
|
'disabled_dir': '/var/lib/ctf/disabled',
|
||
|
},
|
||
|
'puzzler':
|
||
|
{'dir': '/usr/lib/www/puzzler',
|
||
|
'ignore_dir': '/var/lib/ctf/puzzler.ignore',
|
||
|
'cgi_url': '/puzzler.cgi',
|
||
|
'base_url': '/puzzler',
|
||
|
'keys_file': '/usr/lib/ctf/puzzler.keys',
|
||
|
},
|
||
|
}
|
||
|
|
||
|
def get(section, key):
|
||
|
return config[section][key]
|
||
|
|
||
|
disabled_dir = get('global', 'disabled_dir')
|
||
|
data_dir = get('global', 'data_dir')
|
||
|
base_url = get('global', 'base_url')
|
||
|
css = get('global', 'css_url')
|
||
|
|
||
|
def disabled(cat):
|
||
|
path = os.path.join(disabled_dir, cat)
|
||
|
return os.path.exists(path)
|
||
|
|
||
|
def enabled(cat):
|
||
|
return not disabled(cat)
|
||
|
|
||
|
def datafile(filename):
|
||
|
return os.path.join(data_dir, filename)
|
||
|
|
||
|
def url(path):
|
||
|
return base_url + path
|