]> apps.delaporte.us Git - dotfiles.git/blob - bin/clerk
Add dotbot installer
[dotfiles.git] / bin / clerk
1 #!/usr/bin/python
2
3 import csv
4 from datetime import datetime as dt
5 import os
6
7 DATA_DIR=os.path.expanduser('~/Journal/2026/Data')
8
9 data_files = {}
10 for root, _, files in os.walk(DATA_DIR):
11 for file in files:
12 name, ext = os.path.splitext(file)
13 if ext == '.csv':
14 data_files[name] = os.path.join(root, file)
15
16 print(data_files.keys())
17 choice = input()
18
19 file = data_files[choice]
20
21 print(file)
22
23 with open(file, 'r') as f:
24 reader = csv.reader(f, delimiter=',', quotechar='"')
25 fields = next(reader) # require header row
26 first_example = next(reader)
27 for line in reader:
28 last_example = next(reader)
29
30 print(first_example)
31 print("...")
32 print(last_example)
33
34
35 DATE_FORMAT = '%Y-%m-%d'
36
37 def today():
38 return dt.now().strftime(DATE_FORMAT)
39
40 values = {}
41 for key in fields:
42 default = ''
43 if key == 'date':
44 default = today()
45 values[key] = input(f"{key} [{default}]\n").strip() or default
46
47 print("Break with Ctrl+C if incorrect:")
48 print(values)
49 input() # Assume break with Ctrl+C if incorrect
50
51 with open(file, 'a') as f:
52 writer = csv.DictWriter(f, fields)
53 writer.writerow(values)
54 print(f"Updated {file}")
55
56