adding environment validator and nopub clearer

on startup, ttbp checks to see if the environment is valid, and prompts
user to run setup again if not. also, nopub files are now removed from
html if they were generated.
这个提交包含在:
endorphant 2016-06-09 22:42:08 -04:00
父节点 aebdd51d08
当前提交 d33bdbfab1
共有 2 个文件被更改,包括 46 次插入1 次删除

查看文件

@ -57,7 +57,6 @@ p = inflect.engine()
## user globals
USER = os.path.basename(os.path.expanduser("~"))
PATH = os.path.join("/home", USER, ".ttbp")
PUBLIC = os.path.join("/home", USER, "public_html")
WWW = os.path.join(PATH, "www")
@ -158,6 +157,7 @@ def check_init():
if os.path.exists(os.path.join(os.path.expanduser("~"),".ttbp")):
print(chatter.say("greet")+", "+USER+".\n")
'''
## ttbprc validation
while not os.path.isfile(TTBPRC):
setup_repair()
@ -165,6 +165,11 @@ def check_init():
SETTINGS = json.load(open(TTBPRC))
except ValueError:
setup_repair()
'''
## ttbp env validation
if not valid_setup():
setup_repair()
## version checker
mismatch = build_mismatch()
@ -256,6 +261,33 @@ def gen_header():
"""
return header
def valid_setup():
'''
Checks to see if user has a sane ttbp environment.
'''
global SETTINGS
if not os.path.isfile(TTBPRC):
return False
try:
SETTINGS = json.load(open(TTBPRC))
except ValueError:
return False
if core.publishing():
if not SETTINGS.get("publish dir"):
return False
if not os.path.exists(WWW):
return False
if not os.path.exists(os.path.join(WWW, SETTINGS.get("pubish dir"))):
return False
return True
def setup_repair():
'''
setup repair function
@ -296,6 +328,7 @@ def setup():
# publishing selection
SETTINGS.update({"publishing":select_publishing()})
core.reload_ttbprc(SETTINGS)
update_publishing()
redraw("blog publishing: "+str(core.publishing()))

查看文件

@ -69,6 +69,15 @@ def load(ttbprc={}):
load_files()
def reload_ttbprc(ttbprc={}):
'''
reloads new ttbprc into current session
'''
global SETTINGS
SETTINGS = ttbprc
def load_files():
'''
file loader
@ -83,6 +92,9 @@ def load_files():
for filename in os.listdir(DATA):
if nopub(filename):
link = os.path.join(WWW, os.path.splitext(os.path.basename(filename))[0]+".html")
if os.path.exists(link):
subprocess.call(["rm", link])
continue
filename = os.path.join(DATA, filename)
if os.path.isfile(filename) and valid(filename):