feat: load ftest control and result repository configs
This commit is contained in:
parent
76b7d7e727
commit
b3c685b593
2 changed files with 36 additions and 19 deletions
|
@ -6,7 +6,7 @@ support_email = "support@forgeflux.org"
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
# The port at which you want Pages to listen to
|
# The port at which you want Pages to listen to
|
||||||
port = 7000
|
port = 9000
|
||||||
#IP address. Enter 0.0.0.0 to listen on all availale addresses
|
#IP address. Enter 0.0.0.0 to listen on all availale addresses
|
||||||
ip= "0.0.0.0"
|
ip= "0.0.0.0"
|
||||||
# The number of worker threads that must be spun up by the Pages server.
|
# The number of worker threads that must be spun up by the Pages server.
|
||||||
|
@ -31,3 +31,9 @@ password = "password"
|
||||||
name = "postgres"
|
name = "postgres"
|
||||||
pool = 4
|
pool = 4
|
||||||
database_type="postgres" # "postgres"
|
database_type="postgres" # "postgres"
|
||||||
|
|
||||||
|
|
||||||
|
[repository]
|
||||||
|
control_repository = "https://git.batsense.net/ForgeFlux/ftest-control"
|
||||||
|
results_repository = "ssh://git@git.batsense.net:ForgeFlux/ftest-results"
|
||||||
|
base_dir = "/tmp/ftest"
|
||||||
|
|
|
@ -1,19 +1,8 @@
|
||||||
/*
|
// Copyright (C) 2022 Aravinth Manivannan <realaravinth@batsense.net>
|
||||||
* Copyright (C) 2022 Aravinth Manivannan <realaravinth@batsense.net>
|
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
||||||
*
|
//
|
||||||
* This program is free software: you can redistribute it and/or modify
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
* it under the terms of the GNU Affero General Public License as
|
|
||||||
* published by the Free Software Foundation, either version 3 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Affero General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
@ -70,6 +59,13 @@ pub struct Database {
|
||||||
pub database_type: DBType,
|
pub database_type: DBType,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
pub struct Repository {
|
||||||
|
pub control_repository: String,
|
||||||
|
pub results_repository: String,
|
||||||
|
pub base_dir: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct Settings {
|
pub struct Settings {
|
||||||
pub allow_registration: bool,
|
pub allow_registration: bool,
|
||||||
|
@ -78,6 +74,7 @@ pub struct Settings {
|
||||||
pub server: Server,
|
pub server: Server,
|
||||||
pub source_code: String,
|
pub source_code: String,
|
||||||
pub database: Database,
|
pub database: Database,
|
||||||
|
pub repository: Repository,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(tarpaulin_include))]
|
#[cfg(not(tarpaulin_include))]
|
||||||
|
@ -86,7 +83,7 @@ impl Settings {
|
||||||
let mut s = Config::builder();
|
let mut s = Config::builder();
|
||||||
|
|
||||||
const CURRENT_DIR: &str = "./config/default.toml";
|
const CURRENT_DIR: &str = "./config/default.toml";
|
||||||
const ETC: &str = "/etc/liberapages/librepages/config.toml";
|
const ETC: &str = "/etc/ftest/config.toml";
|
||||||
|
|
||||||
let mut read_file = false;
|
let mut read_file = false;
|
||||||
|
|
||||||
|
@ -170,7 +167,21 @@ impl Settings {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// create_dir_util(Path::new(&self.page.base_path));
|
create_dir_util(Path::new(&self.repository.base_dir));
|
||||||
|
|
||||||
|
let base_dir = Path::new(&self.repository.base_dir);
|
||||||
|
|
||||||
|
let control = base_dir.join("control");
|
||||||
|
let results = base_dir.join("results");
|
||||||
|
|
||||||
|
// check if repo exists, then clone. If exists, pull
|
||||||
|
|
||||||
|
if !control.exists() {
|
||||||
|
crate::git::Git::clone(&self.repository.control_repository, base_dir, "control");
|
||||||
|
}
|
||||||
|
if !results.exists() {
|
||||||
|
crate::git::Git::clone(&self.repository.results_repository, base_dir, "results");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(tarpaulin_include))]
|
#[cfg(not(tarpaulin_include))]
|
||||||
|
|
Loading…
Reference in a new issue