added patching utility
now checks for user version; if it doesn't match current version, apply patches. current patch reconfigures user directories, moving files out of public_html and setting up a symlink from user's "publish dir" to .ttbp/www instead. also moves style.css into .ttbp/config and symlinks to www/style.css in preparation for style selector.master
parent
6013daad11
commit
2a406d7958
120
bin/_ttbp.py
120
bin/_ttbp.py
|
@ -19,10 +19,13 @@ LIVE = "http://tilde.town/~"
|
||||||
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail")
|
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail")
|
||||||
FEEDBOX = "endorphant@tilde.town"
|
FEEDBOX = "endorphant@tilde.town"
|
||||||
USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt")
|
USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt")
|
||||||
|
VERSION = "0.8.6"
|
||||||
|
|
||||||
p = inflect.engine()
|
p = inflect.engine()
|
||||||
|
|
||||||
## user globals
|
## user globals
|
||||||
USER = os.path.basename(os.path.expanduser("~"))
|
USER = os.path.basename(os.path.expanduser("~"))
|
||||||
|
|
||||||
PATH = os.path.join("/home", USER, ".ttbp")
|
PATH = os.path.join("/home", USER, ".ttbp")
|
||||||
PUBLIC = os.path.join("/home", USER, "public_html")
|
PUBLIC = os.path.join("/home", USER, "public_html")
|
||||||
WWW = os.path.join(PATH, "www")
|
WWW = os.path.join(PATH, "www")
|
||||||
|
@ -72,6 +75,11 @@ just keep in mind that you might lose anything you've started here.\
|
||||||
print(stop())
|
print(stop())
|
||||||
return
|
return
|
||||||
|
|
||||||
|
## PATCH CHECK HERE
|
||||||
|
if not updated():
|
||||||
|
update_version()
|
||||||
|
|
||||||
|
##
|
||||||
redraw()
|
redraw()
|
||||||
|
|
||||||
while 1:
|
while 1:
|
||||||
|
@ -131,31 +139,15 @@ press <enter> to begin, or <ctrl-c> to get out of here.
|
||||||
headerfile.close()
|
headerfile.close()
|
||||||
|
|
||||||
subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "footer.txt"), CONFIG])
|
subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "footer.txt"), CONFIG])
|
||||||
|
subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "style.css"), CONFIG])
|
||||||
|
|
||||||
setup()
|
setup()
|
||||||
#subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "style.css"), WWW])
|
|
||||||
core.load()
|
core.load()
|
||||||
|
|
||||||
raw_input("\nyou're all good to go, "+chatter.say("friend")+"! hit <enter> to continue.\n\n")
|
raw_input("\nyou're all good to go, "+chatter.say("friend")+"! hit <enter> to continue.\n\n")
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def gen_header():
|
def gen_header():
|
||||||
#header = []
|
|
||||||
|
|
||||||
#header.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">")
|
|
||||||
#header.append("\n<html>")
|
|
||||||
#header.append("\n\t<head>")
|
|
||||||
#header.append("\n\t\t<title>~"+USER+" on TTBP</title>")
|
|
||||||
#header.append("\n\t\t<link rel=\"stylesheet\" href=\"style.css\" />")
|
|
||||||
#header.append("\n\t</head>")
|
|
||||||
#header.append("\n\t<body>")
|
|
||||||
#header.append("\n\t\t<div id=\"meta\">")
|
|
||||||
#header.append("\n\t\t\t<h1><a href=\"index.html#\">~"+USER+"</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1>")
|
|
||||||
#header.append("\n\t\t</div>\n")
|
|
||||||
#header.append("\n\t\t<!---put your custom html here-->\n\n\n\n")
|
|
||||||
#header.append("\n\t\t<!---don't put anything after this line-->\n")
|
|
||||||
#header.append("\n\t\t<div id=\"tlogs\">\n")
|
|
||||||
|
|
||||||
header ="""
|
header ="""
|
||||||
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">
|
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">
|
||||||
<html>
|
<html>
|
||||||
|
@ -632,20 +624,20 @@ def select_publish_dir():
|
||||||
if not choice:
|
if not choice:
|
||||||
choice = "blog"
|
choice = "blog"
|
||||||
|
|
||||||
publishing = os.path.join(PUBLIC, choice)
|
publishDir = os.path.join(PUBLIC, choice)
|
||||||
while os.path.exists(publishing):
|
while os.path.exists(publishDir):
|
||||||
second = raw_input("\n"+publishing+" already exists!\nif you're sure you want to use it, hit <enter> to confirm. otherwise, pick another location: ")
|
second = raw_input("\n"+publishDir+" already exists!\nif you're sure you want to use it, hit <enter> to confirm. otherwise, pick another location: ")
|
||||||
if second == "":
|
if second == "":
|
||||||
break
|
break
|
||||||
choice = second
|
choice = second
|
||||||
publishing = os.path.join(PUBLIC, choice)
|
publishDir = os.path.join(PUBLIC, choice)
|
||||||
|
|
||||||
return choice
|
return choice
|
||||||
|
|
||||||
def select_publishing():
|
def select_publishing():
|
||||||
# setup helper for toggling publishing
|
# setup helper for toggling publishing
|
||||||
|
|
||||||
publishing = input_yn("""\
|
publish = input_yn("""\
|
||||||
do you want to publish your feels online?
|
do you want to publish your feels online?
|
||||||
|
|
||||||
if yes, i'll make a directory in your public_html where your blog posts
|
if yes, i'll make a directory in your public_html where your blog posts
|
||||||
|
@ -657,15 +649,15 @@ you can change this option any time.
|
||||||
please enter\
|
please enter\
|
||||||
""")
|
""")
|
||||||
|
|
||||||
return publishing
|
return publish
|
||||||
|
|
||||||
def unpublish():
|
def unpublish():
|
||||||
# remove user's published directory, if it exists
|
# remove user's published directory, if it exists
|
||||||
|
|
||||||
publishing = os.path.join(PUBLIC, SETTINGS.get("publish dir"))
|
publishDir = os.path.join(PUBLIC, SETTINGS.get("publish dir"))
|
||||||
|
|
||||||
if os.path.exists(publishing):
|
if os.path.exists(publishDir):
|
||||||
subprocess.call(["rm", "-rf", publishing])
|
subprocess.call(["rm", "-rf", publishDir])
|
||||||
subprocess.call(["rm", WWW])
|
subprocess.call(["rm", WWW])
|
||||||
|
|
||||||
return
|
return
|
||||||
|
@ -673,19 +665,75 @@ def unpublish():
|
||||||
def make_publish_dir(dir):
|
def make_publish_dir(dir):
|
||||||
# setup helper to create publishing directory
|
# setup helper to create publishing directory
|
||||||
|
|
||||||
publishing = os.path.join(PUBLIC, dir)
|
if not os.path.exists(WWW):
|
||||||
if not os.path.exists(publishing):
|
subprocess.call(["mkdir", WWW])
|
||||||
subprocess.call(["mkdir", publishing])
|
subprocess.call(["ln", "-s", os.path.join(CONFIG, "style.css"), os.path.join(WWW, "style.css")])
|
||||||
subprocess.call(["touch", os.path.join(publishing, "index.html")])
|
subprocess.call(["touch", os.path.join(WWW, "index.html")])
|
||||||
index = open(os.path.join(publishing, "index.html"), "w")
|
index = open(os.path.join(WWW, "index.html"), "w")
|
||||||
index.write("<h1>ttbp blog placeholder</h1>")
|
index.write("<h1>ttbp blog placeholder</h1>")
|
||||||
index.close()
|
index.close()
|
||||||
if os.path.exists(WWW):
|
|
||||||
subprocess.call(["rm", WWW])
|
publishDir = os.path.join(PUBLIC, dir)
|
||||||
subprocess.call(["ln", "-s", publishing, WWW])
|
if os.path.exists(publishDir):
|
||||||
subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "style.css"), WWW])
|
subprocess.call(["rm", publishDir])
|
||||||
|
|
||||||
|
subprocess.call(["ln", "-s", WWW, publishDir])
|
||||||
|
|
||||||
print("\n\tpublishing to "+LIVE+USER+"/"+SETTINGS.get("publish dir")+"/\n\n")
|
print("\n\tpublishing to "+LIVE+USER+"/"+SETTINGS.get("publish dir")+"/\n\n")
|
||||||
|
|
||||||
|
##### PATCHES
|
||||||
|
|
||||||
|
def updated():
|
||||||
|
# checks to see if current user is up to the same version as system
|
||||||
|
|
||||||
|
versionFile = os.path.join(PATH, "version")
|
||||||
|
if not os.path.exists(versionFile):
|
||||||
|
return False
|
||||||
|
|
||||||
|
ver = open(versionFile, "r").read()
|
||||||
|
|
||||||
|
if ver == VERSION:
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def update_version():
|
||||||
|
# updates current user to current version
|
||||||
|
|
||||||
|
versionFile = os.path.join(PATH, "version")
|
||||||
|
print(versionFile)
|
||||||
|
|
||||||
|
# from 0.8.5 to 0.8.6:
|
||||||
|
if not os.path.isfile(versionFile):# and publishing():
|
||||||
|
#print("hi let's fix this")
|
||||||
|
|
||||||
|
# change style.css location
|
||||||
|
if os.path.exists(os.path.join(WWW, "style.css")):
|
||||||
|
subprocess.call(["mv", os.path.join(WWW, "style.css"), CONFIG])
|
||||||
|
|
||||||
|
# change www symlink
|
||||||
|
if os.path.exists(WWW):
|
||||||
|
subprocess.call(["rm", WWW])
|
||||||
|
subprocess.call(["mkdir", WWW])
|
||||||
|
|
||||||
|
subprocess.call(["ln", "-s", os.path.join(CONFIG, "style.css"), os.path.join(WWW, "style.css")])
|
||||||
|
|
||||||
|
publishDir = os.path.join(PUBLIC, SETTINGS.get("publish dir"))
|
||||||
|
#print(publishDir)
|
||||||
|
if os.path.exists(publishDir):
|
||||||
|
#print("removing "+publishDir)
|
||||||
|
subprocess.call(["rm", "-rf", publishDir])
|
||||||
|
subprocess.call(["ln", "-s", WWW, os.path.join(PUBLIC, SETTINGS.get("publish dir"))])
|
||||||
|
|
||||||
|
# repopulate html files
|
||||||
|
core.load_files()
|
||||||
|
core.write("index.html")
|
||||||
|
|
||||||
|
# increment user versionfile
|
||||||
|
open(versionFile, "w").write(VERSION)
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
|
||||||
start()
|
|
||||||
|
#start()
|
||||||
|
print("ttbp beta is out to lunch. bbl.")
|
||||||
|
|
Loading…
Reference in New Issue