summaryrefslogtreecommitdiff
path: root/.config/nushell/notes.nu
blob: c5910634c9ed27f6f3e11a81a6da1d1e37df5518 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def open-db-in-memory [] {
    if ($env.NOTES_DB_PATH | path exists) {
        stor import --file-name (get-db-path)
    } else {
        stor reset
        stor create -t "note" -c {created: datetime, text: str}
        stor export --file-name (get-db-path)
    }
}

def save-db-to-file [] {
    rm $env.NOTES_DB_PATH
    stor export --file-name $env.NOTES_DB_PATH
}

export def add [text: string] {
    open-db-in-memory
    stor insert -t note -d { created: (date now), text: ($text) }
    save-db-to-file
}

export def browse [--before: datetime, --after: datetime] {
    open-db-in-memory
    let before_filter = if ($before != null) { 
        $before
    } else { 
        date now
    }

    let after_filter = if ($after != null) { 
        $after
    } else {
        "0001-01-01" | into datetime
    }

    let notes = open $env.NOTES_DB_PATH | get note | where {|row|
        ($row.created | into datetime) < $before_filter and ($row.created | into datetime) > $after_filter
    }

    $notes
}