do some work on jrnl

This commit is contained in:
Schrottkatze 2025-04-25 17:09:58 +02:00
parent d78a0b1c09
commit bd60655fcc
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
5 changed files with 28 additions and 342 deletions

View file

@ -6,13 +6,7 @@ edition = "2021"
[dependencies]
chrono = "0.4.38"
clap = { version = "4.5.4", features = ["derive", "env"] }
dirs = "5.0.1"
ego-tree = "0.6.2"
indexmap = "2.2.6"
markdown = "0.3.0"
owo-colors = "4.0.0"
petgraph = "0.6.4"
ratatui = "0.26.2"
temp-file = "0.1.8"
termsize = "0.1.9"
inquire = "0.7.5"

View file

@ -2,7 +2,7 @@ use std::{
env,
fs::{self, OpenOptions},
io::{self, Write},
path::PathBuf,
path::{Path, PathBuf},
process::Command,
};
@ -12,7 +12,7 @@ use temp_file::{TempFile, TempFileBuilder};
use crate::md::{Entry, ToMd};
// TODO: the usual (better error handling)
pub fn add_entry(path: PathBuf, title: Option<String>) -> io::Result<()> {
pub fn add_entry(path: &Path, title: Option<String>) -> io::Result<()> {
if !path.exists() {
eprintln!("Journal file does not exist at {path:?}, exiting...");
std::process::exit(1);

View file

@ -1,9 +1,12 @@
use owo_colors::OwoColorize;
use std::{fs, io, path::PathBuf};
use std::{
fs, io,
path::{Path, PathBuf},
};
use crate::md::Doc;
pub fn list_entries(path: PathBuf) -> io::Result<()> {
pub fn list_entries(path: &Path) -> io::Result<()> {
let file = fs::read_to_string(path)?;
if let Some(doc) = Doc::new(&file) {

View file

@ -1,5 +1,8 @@
use clap::{Parser, Subcommand};
use std::{fs, io, path::PathBuf};
use std::{
fs, io,
path::{self, Path, PathBuf},
};
use crate::{
commands::add_entry::add_entry,
@ -31,13 +34,14 @@ fn main() -> io::Result<()> {
let cli = Cli::parse();
println!("Hello, world!");
println!("cli: {cli:#?}");
let path = dbg!(path::absolute(&cli.s10e_jrnl_file_loc)?);
match cli.command {
Some(Command::ListEntries) => list_entries(cli.s10e_jrnl_file_loc.clone()),
Some(Command::Add { title }) => add_entry(cli.s10e_jrnl_file_loc.clone(), title),
Some(Command::ListEntries) => list_entries(&path),
Some(Command::Add { title }) => add_entry(&path, title),
None => {
// TODO: handle btter
let file = fs::read_to_string(cli.s10e_jrnl_file_loc)?;
let file = fs::read_to_string(path)?;
let doc = Doc::new(&file).unwrap();
println!("{}", doc.to_md());