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

@ -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());