aboutsummaryrefslogtreecommitdiff
path: root/pyblog
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2019-05-26 17:59:42 +0200
committerneodarz <neodarz@neodarz.net>2019-05-26 17:59:42 +0200
commita23bf5af6e7be3fcea03e4b81f4d54a2c916e087 (patch)
treef9dfc3f2d678b6dc2e62c501be511aaa5cf517cd /pyblog
parent9bf107a102b8e6e9e199a5a93390c2a9c5cf9d53 (diff)
downloadmy_new_personal_website-a23bf5af6e7be3fcea03e4b81f4d54a2c916e087.tar.xz
my_new_personal_website-a23bf5af6e7be3fcea03e4b81f4d54a2c916e087.zip
Move gen_deploy to external file
Diffstat (limited to 'pyblog')
-rwxr-xr-xpyblog63
1 files changed, 1 insertions, 62 deletions
diff --git a/pyblog b/pyblog
index b4ff6391..54714e94 100755
--- a/pyblog
+++ b/pyblog
@@ -53,67 +53,6 @@ from generators import generators
from cli import cli
-def gen_deploy(args):
- """Regenerate and deploy."""
- # pylint: disable=unused-argument,too-many-branches
-
- # try to smartly determine the latest post, and prompt to touch it
- current_time = time.time()
- latest_post = None
- latest_postdate = 0
- latest_mtime = 0
- for name in os.listdir(POSTSDIR):
- matchobj = re.match(r"^([0-9]{4})-([0-9]{2})-([0-9]{2})-.*\.md", name)
- if not matchobj:
- continue
- fullpath = os.path.join(POSTSDIR, name)
- mtime = os.path.getmtime(fullpath)
- # get post date from the date metadata field of the post
- postdate = 0
- with open(fullpath) as postobj:
- for line in postobj:
- dateregex = r"^date: (\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}-\d{2}:?\d{2})"
- datematch = re.match(dateregex, line.rstrip())
- if datematch:
- postdate = dateutil.parser.parse(datematch.group(1)).timestamp()
- break
- # skip the post if it is dated more than three days ago
- if current_time - postdate > 3 * 24 * 3600:
- continue
- if mtime > latest_mtime:
- latest_post = name
- latest_postdate = postdate
- latest_mtime = mtime
- # prompt for touching if the latest post determined above was
- # modified within the last hour but the date registered in the post
- # isn't within the last ten minutes
- if ((latest_post is not None and current_time - latest_mtime < 3600 and
- current_time - latest_postdate > 600)):
- sys.stderr.write("%sIt appears that %s might be a new post.\n"
- "Do you want to touch its timestamp?%s\n" %
- (GREEN, latest_post, RESET))
- while True:
- yesnoquit = input("[ynq]: ")
- if yesnoquit.startswith(("Y", "y")):
- yesno = True
- break
- elif yesnoquit.startswith(("N", "n")):
- yesno = False
- break
- elif yesnoquit.startswith(("Q", "q")):
- sys.stderr.write("%saborting gen_deploy%s\n" % (RED, RESET))
- return 1
- else:
- sys.stderr.write("Please answer yes, no, or quit.\n")
- if yesno:
- sys.stderr.write("%stouching %s%s\n" % (BLUE, latest_post, RESET))
- cli.touch(latest_post)
- sys.stderr.write("\n")
-
- generators.generate_blog(fresh=True)
- cli.deploy(None)
-
-
class HTTPServerProcess(multiprocessing.Process):
"""This class can be used to run an HTTP server."""
@@ -424,7 +363,7 @@ def main():
parser_new_post = subparsers.add_parser(
"gen_deploy", aliases=["gd", "gendep"],
description="Rebuild entire blog and deploy build/ to origin/master.")
- parser_new_post.set_defaults(func=gen_deploy)
+ parser_new_post.set_defaults(func=cli.gen_deploy)
parser_new_post = subparsers.add_parser(
"edit", aliases=["e", "ed"],