Add support for MacOS.

This commit is contained in:
raute 2024-05-09 00:15:01 +02:00
parent 4b7346047d
commit fb52015445
2 changed files with 28 additions and 4 deletions

View File

@ -6,4 +6,5 @@ A simple script to format the minutes of a plenum (Markdown) for the LeineLab wi
Copy the Markdown code to clipboard and call this script. You'll the find the modified code in your clipboard, ready to paste. Copy the Markdown code to clipboard and call this script. You'll the find the modified code in your clipboard, ready to paste.
## Dependencies ## Dependencies
- xclip - xclip (Linux)
- pbcopy/pbpaste (MacOS)

View File

@ -1,20 +1,43 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import datetime import datetime
import platform
import re import re
import subprocess import subprocess
import sys import sys
def get_clipboard():
if platform.system() == "Darwin":
return subprocess.check_output(["pbpaste"]).decode()
return subprocess.check_output(["xclip", "-out", "-selection", "clipboard"]).decode()
def set_clipboard(content):
if platform.system() == "Darwin":
subprocess.run(["pbcopy"], input=content.encode())
return
subprocess.run(["xclip", "-in", "-selection", "clipboard"], input=content.encode())
# main
if platform.system() not in ["Darwin", "Linux"]:
print("Nicht unterstütztes Betriebssystem.", file=sys.stderr)
sys.exit(1)
months = ["", months = ["",
"Januar", "Februar", "März", "Januar", "Februar", "März",
"April", "Mai", "Juni", "April", "Mai", "Juni",
"Juli", "August", "September", "Juli", "August", "September",
"Oktober", "November", "Dezember"] "Oktober", "November", "Dezember"]
clipboard = subprocess.check_output(["xclip", "-out", "-selection", "clipboard"]).decode() clipboard = get_clipboard()
m = re.match(r"# ([0-9][0-9]+)\. Plenum .+ ([0-9]{1,2})\. (" + "|".join(months[1:]) + ") (20[0-9]{2})", m = re.match(r"# ([0-9][0-9]+)\. Plenum .+ ([0-9]{1,2})\. ("
+ "|".join(months[1:])
+ ") (20[0-9]{2})",
clipboard) clipboard)
if not m: if not m:
print("Error: Überschrift nicht erkannt.", file=sys.stderr) print("Error: Überschrift nicht erkannt.", file=sys.stderr)
@ -52,5 +75,5 @@ links = "[⇐ vorheriges Plenum]({}) | [nächstes Plenum ⇒]({})".format(earlie
markdown = "{}\n\n{}".format(links, clipboard) markdown = "{}\n\n{}".format(links, clipboard)
output = f"<!DOCTYPE markdown>\n\n{markdown}" output = f"<!DOCTYPE markdown>\n\n{markdown}"
replaced = output.replace("[x]", "<fs x-large>☑</fs>").replace("[ ]", "<fs x-large>☐</fs>") replaced = output.replace("[x]", "<fs x-large>☑</fs>").replace("[ ]", "<fs x-large>☐</fs>")
subprocess.run(["xclip", "-in", "-selection", "clipboard"], input=replaced.encode()) set_clipboard(replaced)
print("Dokuwiki-Code kopiert.") print("Dokuwiki-Code kopiert.")