Compare commits
3 commits
7edd412b2b
...
dfbd324e0d
| Author | SHA1 | Date | |
|---|---|---|---|
| dfbd324e0d | |||
| 407614b72e | |||
| 62c1fa03b0 |
3 changed files with 59 additions and 17 deletions
1
.envrc
1
.envrc
|
|
@ -1 +1,2 @@
|
||||||
|
watch_file shell.nix
|
||||||
use flake
|
use flake
|
||||||
|
|
|
||||||
46
main.go
46
main.go
|
|
@ -1,10 +1,15 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"errors"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
@ -14,10 +19,12 @@ func main() {
|
||||||
|
|
||||||
func ParseFlags(sb string) {
|
func ParseFlags(sb string) {
|
||||||
note := sb + "/notes"
|
note := sb + "/notes"
|
||||||
// daily := sb + "/periodic/daily"
|
daily := sb + "/periodic/daily"
|
||||||
// templates := sb + "/templates"
|
templates := sb + "/templates"
|
||||||
|
|
||||||
quickPtr := flag.Bool("q", false, "Open quick file for notes")
|
quickPtr := flag.Bool("q", false, "Open quick file for notes")
|
||||||
|
listPtr := flag.Bool("l", false, "List files in notes directory")
|
||||||
|
dailyPtr := flag.Bool("d", false, "Create/Edit daily journal entry")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
|
@ -29,6 +36,41 @@ func ParseFlags(sb string) {
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if *listPtr {
|
||||||
|
files, err := os.ReadDir(note)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, f := range files {
|
||||||
|
file := f.Name()
|
||||||
|
fmt.Println(strings.ReplaceAll(file, ".md", ""))
|
||||||
|
}
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
if *dailyPtr {
|
||||||
|
date := time.Now().Local().Format("2006-01-02")
|
||||||
|
file := daily + "/" + date + ".md"
|
||||||
|
dailyTemplate := templates + "/daily.md"
|
||||||
|
|
||||||
|
// If the file doesn't exist, create it
|
||||||
|
if _, err := os.Stat(file); errors.Is(err, os.ErrNotExist) {
|
||||||
|
// Read template file
|
||||||
|
t, _ := os.ReadFile(dailyTemplate)
|
||||||
|
|
||||||
|
// Replace yesterday and tomorrow with specific dates
|
||||||
|
t = bytes.ReplaceAll(t, []byte("YESTERDAY"), []byte(time.Now().Local().AddDate(0, 0, -1).Format("2006-01-02")))
|
||||||
|
t = bytes.ReplaceAll(t, []byte("TOMORROW"), []byte(time.Now().Local().AddDate(0, 0, 1).Format("2006-01-02")))
|
||||||
|
|
||||||
|
// write the file
|
||||||
|
os.WriteFile(file, t, 0644)
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenNvim(file)
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
if len(fileName) == 0 {
|
if len(fileName) == 0 {
|
||||||
fmt.Println("You didn't specify a note name")
|
fmt.Println("You didn't specify a note name")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|
|
||||||
29
shell.nix
29
shell.nix
|
|
@ -4,22 +4,21 @@
|
||||||
inherit (builtins) fetchTree fromJSON readFile;
|
inherit (builtins) fetchTree fromJSON readFile;
|
||||||
inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix;
|
inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix;
|
||||||
in
|
in
|
||||||
import (fetchTree nixpkgs.locked) {
|
import (fetchTree nixpkgs.locked) {
|
||||||
overlays = [
|
overlays = [
|
||||||
(import "${fetchTree gomod2nix.locked}/overlay.nix")
|
(import "${fetchTree gomod2nix.locked}/overlay.nix")
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
mkGoEnv ? pkgs.mkGoEnv,
|
mkGoEnv ? pkgs.mkGoEnv,
|
||||||
gomod2nix ? pkgs.gomod2nix,
|
gomod2nix ? pkgs.gomod2nix,
|
||||||
}:
|
}: let
|
||||||
|
goEnv = mkGoEnv {pwd = ./.;};
|
||||||
let
|
|
||||||
goEnv = mkGoEnv { pwd = ./.; };
|
|
||||||
in
|
in
|
||||||
pkgs.mkShell {
|
pkgs.mkShell {
|
||||||
packages = [
|
packages = [
|
||||||
goEnv
|
goEnv
|
||||||
gomod2nix
|
gomod2nix
|
||||||
];
|
pkgs.gopls
|
||||||
}
|
];
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue