summaryrefslogtreecommitdiffstats
path: root/src/util.rs
blob: 3e9598144f6166157cbddacd6df70a80dd60a423 (plain) (blame)
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
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"))
}