ref: Print optional error message on editor process error
Editor function takes an optional io object which is used to print an error output if the subprocess errors.
This commit is contained in:
parent
e84adc4392
commit
3ef552bbe5
2 changed files with 15 additions and 3 deletions
10
topen.py
10
topen.py
|
|
@ -65,7 +65,7 @@ def main(cfg: "TConf | None" = None, io: "_IO | None" = None) -> int:
|
|||
|
||||
_ensure_parent_dir(fpath)
|
||||
io.out(f"Editing note: {fpath}")
|
||||
open_editor(fpath, editor=cfg.notes_editor)
|
||||
open_editor(fpath, editor=cfg.notes_editor, io=io)
|
||||
|
||||
if fpath.exists():
|
||||
if is_annotation_missing(task, annotation_content=cfg.notes_annot):
|
||||
|
|
@ -95,9 +95,13 @@ def get_notes_file(uuid: str, notes_dir: Path, notes_ext: str) -> Path:
|
|||
return Path(notes_dir).joinpath(f"{uuid}.{notes_ext}")
|
||||
|
||||
|
||||
def open_editor(file: Path, editor: str) -> None:
|
||||
def open_editor(file: Path, editor: str, io: "_IO | None" = None) -> None:
|
||||
"""Opens a file with the chosen editor."""
|
||||
_ = subprocess.run([editor, str(file)], check=True)
|
||||
try:
|
||||
_ = subprocess.run([editor, str(file)], check=True)
|
||||
except subprocess.CalledProcessError:
|
||||
if io:
|
||||
io.err("Editor exited with an error, aborting.\n")
|
||||
|
||||
|
||||
def is_annotation_missing(task: Task, annotation_content: str) -> bool:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue