jrnlwarrior/options.py

52 lines
1.3 KiB
Python

import os
import argparse
from dataclasses import dataclass
@dataclass
class Options:
jrnl_fname: str = f"{os.path.expanduser('~')}/documents/records/todo.md"
todo_block_title: str = "todotxt"
dryrun: bool = False
taskwarrior_log_completed: bool = True
regex_task_completed: str = r"(?:x|[x])"
regex_task_incomplete: str = r"[ ]"
def init():
opt = Options()
parse_cmdline_args(opt)
print_dryrun(opt)
return opt
def print_dryrun(options):
print(options)
def parse_cmdline_args(options):
parser = argparse.ArgumentParser()
parser.add_argument(
"-n", "--dryrun", help="only simulate and print changes", action="store_true"
)
parser.add_argument("-f", "--file", help="the jrnl file to ingest")
parser.add_argument("-b", "--blocktitle", help="the jrnl file to ingest")
parser.add_argument(
"-L",
"--nologging",
help="don't log done todo items to taskwarrior",
action="store_true",
)
args = parser.parse_args()
if args.dryrun:
options.dryrun = True
if args.nologging:
options.taskwarrior_log_done = False
if args.file:
options.jrnl_fname = args.file
if args.blocktitle:
options.todo_block_title = args.blocktitle
return options