commit 21ec11b24ad8cc88fe547eb5fc706d544e25086f
parent f0ce3a7a515f68f87ba2daea61eacf2ae2a26e8f
Author: lash <dev@holbrook.no>
Date: Sat, 4 Apr 2026 10:47:09 -0600
Add attachment opener to interactive entry edit
Diffstat:
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/dummy/usawa/cli/entry.py b/dummy/usawa/cli/entry.py
@@ -71,6 +71,19 @@ def parse_txdate(ctx, v):
return datetime.date.fromisoformat(v)
+def input_or_default(prompt, default=None, postfix=': ', validate_fn=None):
+ if default != None:
+ postfix = ' [{}]'.format(default) + postfix
+ v = input(prompt + postfix)
+ if len(v) == 0:
+ if default == None:
+ raise ValueError('empty value and no default')
+ v = default
+ if validate_fn != None:
+ validate_fn(v)
+ return v
+
+
def handle_tag(ctx, entry, v):
r = input('Tag: ')
if v == '+':
@@ -101,17 +114,9 @@ def handle_view(ctx, entry, o):
)
-def input_or_default(prompt, default=None, postfix=': ', validate_fn=None):
- if default != None:
- postfix = ' [{}]'.format(default) + postfix
- v = input(prompt + postfix)
- if len(v) == 0:
- if default == None:
- raise ValueError('empty value and no default')
- v = default
- if validate_fn != None:
- validate_fn(v)
- return v
+def handle_description(ctx, entry, v):
+ v = input_or_default("description", entry.description)
+ entry.description = v
def try_entry_uuid(ctx, v):
@@ -263,6 +268,9 @@ class EntrySession:
if v == 'v':
handle_view(self.ctx, self.entry, v)
return True
+ if v == 'd':
+ handle_description(self.ctx, self.entry, v)
+ return True
logg.error('invalid input')
return True