summaryrefslogtreecommitdiff
path: root/src/commands/setup.rs
blob: 34da2f870af13abcba6ea7254b43a459cf3e1023 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
use std::{fs::File, path::Path};

use crate::{config::Cfg, db::db_setup, error::MLE};

pub async fn setup(config: Cfg) -> MLE<()> {
    let db_file = format!("{}/data.db", config.data);

    if !Path::new(&db_file).exists() {
        create(config, db_file)?;
    }

    /*
    match s_config_get_version(config.clone()) {
        Ok(ver) => {
            match ver.as_str() {
                "0.2" => to_03(config)?,
                "0.3" => to_04(config)?,
                _ => return Err(MLError::new(ErrorType::Other, "UNKNOWN_VERSION"))
            }
        },
        Err(..) => to_02(config).await?
    };
    */

    Ok(())
}

fn create(config: Cfg, db_file: String) -> MLE<()> {
    println!("Create database");

    File::create(db_file)?;
    db_setup(config)?;
    Ok(())
}

//async fn to_02(config: Cfg) -> Result<(), Box<dyn std::error::Error>> {
//    let lists = lists_get_all_ids(config.clone())?;
//
//    for list in lists {
//        println!("Updating {}", list);
//        s_insert_column(config.clone(), String::from(&list), String::from("current_download"), String::from("TEXT"), None)?;
//
//        let full_list = lists_get(config.clone(), String::from(&list))?;
//
//        let versions = userlist_get_all_current_version_ids(config.clone(), full_list.clone().id)?;
//
//        let raw_versions = get_raw_versions(String::from(&config.apis.modrinth), versions).await;
//
//        for ver in raw_versions {
//            println!("Adding link for {}", ver.project_id);
//            let file = ver.files.into_iter().find(|f| f.primary).unwrap();
//            s_userlist_update_download(config.clone(), String::from(&full_list.id), ver.project_id, file.url)?;
//        }
//    };
//    s_config_create_version(config)?;
//
//    Ok(())
//}
//
//fn to_03(config: Cfg) -> Result<(), Box<dyn std::error::Error>> {
//    s_insert_column(config.clone(), String::from("lists"), String::from("download_folder"), String::from("TEXT"), None)?;
//    s_config_update_version(config, String::from("0.3"))
//}
//
//fn to_04(config: Cfg) -> Result<(), Box<dyn std::error::Error>> {
//    for list_id in lists_get_all_ids(config.clone())? {
//        s_insert_column(config.clone(), list_id, String::from("disabled_versions"), String::from("TEXT"), Some(String::from("NONE")))?;
//    }
//    s_config_update_version(config, String::from("0.4"))
//}