From 3cad10d133874991b6b7649bd637ce03ec03c2dc Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sat, 28 Aug 2021 22:29:18 +0200 Subject: [PATCH 1/4] Add date and featured image --- dennogumi_new_post.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/dennogumi_new_post.py b/dennogumi_new_post.py index 8109974..246818b 100755 --- a/dennogumi_new_post.py +++ b/dennogumi_new_post.py @@ -9,13 +9,18 @@ from subprocess import call import shutil from typing import List -from atomicwrites import atomic_write, AtomicWriter +from atomicwrites import atomic_write import frontmatter from git import Repo -import sarge +import pytz from slugify import slugify +import toml + POST_PATH = "content/post" +TEMPLATE_PATH = "archetypes/post.blank.md" +CONFIG = "config.toml" +TIMEZONE = pytz.timezone("Europe/Rome") def new_post_title(title: str) -> str: @@ -59,16 +64,14 @@ def create_post(post_title: str, tags: List[str] = None, print("hugo executable not found in PATH.") return - cmd = [hugo_cmd, "new", "-k", "posts", "--quiet"] title = new_post_title(post_title) path = Path(POST_PATH) / title - cmd.append(str(path)) - print(" ".join(cmd)) + shutil.copy(TEMPLATE_PATH, path) - pid = sarge.run(cmd) + with open(CONFIG) as handle: + site_config = toml.load(handle) - if pid.returncode != 0: - return + featured_image = site_config["params"]["featured_image"] header = frontmatter.load(path) @@ -80,6 +83,10 @@ def create_post(post_title: str, tags: List[str] = None, header["draft"] = draft header["comments"] = comments header["title"] = post_title + header["featured_image"] = featured_image + date = datetime.now(tz=TIMEZONE) + # '2021-01-09 02:14:57+01:00' + header["date"] = date.isoformat(timespec="seconds", sep=" ") frontmatter.dump(header, path) From 782f3202e3833587ffb842dbf0bdb36bc6878d88 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sat, 28 Aug 2021 22:43:21 +0200 Subject: [PATCH 2/4] Update to not send mails in case nothing changes Future TODO: Send update if expiry is close (< 30 days) --- sysadmin/letsencrypt_mail.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/sysadmin/letsencrypt_mail.py b/sysadmin/letsencrypt_mail.py index 1135826..749da29 100755 --- a/sysadmin/letsencrypt_mail.py +++ b/sysadmin/letsencrypt_mail.py @@ -44,17 +44,16 @@ def main(): elif "unexpected error occurred" in line: state = State.error - text = "\n".join(text) - subject = SUBJECT.format(str(state)) - message = drymail.Message( - sender=("Certbot renewal bot", "notify@dennogumi.org"), - receivers=["root"], - subject=subject, - headers=HEADER, - text=text - ) - - + if state is not State.no_action: + text = "\n".join(text) + subject = SUBJECT.format(str(state)) + message = drymail.Message( + sender=("Certbot renewal bot", "notify@dennogumi.org"), + receivers=["root"], + subject=subject, + headers=HEADER, + text=text + ) client = drymail.SMTPMailer( host='localhost') From 432a5614dd53758be85e7c521578ebc59e27a8ce Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sun, 29 Aug 2021 16:27:05 +0200 Subject: [PATCH 3/4] Fix the letsencrypt script to actually ignore "no action" notifications --- sysadmin/letsencrypt_mail.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sysadmin/letsencrypt_mail.py b/sysadmin/letsencrypt_mail.py index 749da29..fd9fd7c 100755 --- a/sysadmin/letsencrypt_mail.py +++ b/sysadmin/letsencrypt_mail.py @@ -6,8 +6,6 @@ from enum import Enum import fileinput -import sys -import select import drymail # Vendored @@ -44,16 +42,18 @@ def main(): elif "unexpected error occurred" in line: state = State.error - if state is not State.no_action: - text = "\n".join(text) - subject = SUBJECT.format(str(state)) - message = drymail.Message( - sender=("Certbot renewal bot", "notify@dennogumi.org"), - receivers=["root"], - subject=subject, - headers=HEADER, - text=text - ) + if state is State.no_action: + return + + text = "\n".join(text) + subject = SUBJECT.format(str(state)) + message = drymail.Message( + sender=("Certbot renewal bot", "notify@dennogumi.org"), + receivers=["root"], + subject=subject, + headers=HEADER, + text=text + ) client = drymail.SMTPMailer( host='localhost') From 5e95b7409feb5c7432b1a9263274955adeaae13e Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sun, 29 Aug 2021 16:47:30 +0200 Subject: [PATCH 4/4] Clean up the OBS updater and make sure the commit messages are labeled To distinguish this from regular humans. --- obs/update_unstable.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/obs/update_unstable.py b/obs/update_unstable.py index 90db43b..f479b14 100755 --- a/obs/update_unstable.py +++ b/obs/update_unstable.py @@ -10,7 +10,6 @@ from urllib.parse import quote import git import requests -import sarge API_URL = "https://invent.kde.org/api/v4/projects/" OBS_URL = "https://api.opensuse.org/trigger/runservice" @@ -86,8 +85,9 @@ def trigger_update(repository, package_name, token): result = requests.post(OBS_URL, params=parameters, headers=header) if not result: - logging.error("Error during service run, package %s, error code %s, url %s", - package_name, result.status_code, result.url) + logging.error( + "Error during service run, package %s, error code %s, url %s", + package_name, result.status_code, result.url) return False logging.debug("Package %s complete", package_name) @@ -105,7 +105,6 @@ def update_package(hash_data, package_name, return remote_hash = get_remote_hash(repo_name, branch) - repo_hashes = hash_data.get(obs_repository) if hash_data.get(obs_repository) is None: logging.debug("No prior data - initializing empty") @@ -155,7 +154,7 @@ def commit_changes(cache_file, repo_home): repo = git.Repo(repo_home) repo.index.add([cache_file]) - repo.index.commit("Update caches") + repo.index.commit("[OBS unstable update bot] Update caches") origin = repo.remotes["origin"] origin.pull(rebase=True) origin.push()