diff options
Diffstat (limited to 'src/util.rs')
-rw-r--r-- | src/util.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 0000000..3e95981 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,25 @@ +pub fn program_name() -> failure::Fallible<String> { + let program = std::env::args() + .next() + .ok_or_else(|| format_err!("no program name found"))?; + let path = std::path::Path::new(&program); + let filename = path.file_name() + .ok_or_else(|| format_err!("invalid filename found"))? + .to_string_lossy() + .to_string(); + Ok(filename) +} + +pub fn db_path() -> failure::Fallible<std::path::PathBuf> { + Ok(directories::ProjectDirs::from("", "", "lastfm-query") + .ok_or_else(|| failure::err_msg("couldn't determine data directory"))? + .data_dir() + .join("tracks.sqlite")) +} + +pub fn api_key_path() -> failure::Fallible<std::path::PathBuf> { + Ok(directories::ProjectDirs::from("", "", "lastfm-query") + .ok_or_else(|| failure::err_msg("couldn't determine config directory"))? + .config_dir() + .join("lastfm-api-key")) +} |