Raito Bezarius
2088f62eac
This is a Rust port of the original Perl script, legacy cruft is removed and it focuses on a modern Hydra deployment. Nonetheless, it knows how to perform migrations based on the channel versions. Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
33 lines
970 B
Rust
33 lines
970 B
Rust
use object_store::aws::{AmazonS3, AmazonS3Builder};
|
|
use serde::Deserialize;
|
|
use std::path::PathBuf;
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct MirrorConfig {
|
|
/// URI to Hydra instance
|
|
pub hydra_uri: String,
|
|
/// URI to the binary cache
|
|
binary_cache_uri: String,
|
|
/// A path to a checkout of nixpkgs
|
|
nixpkgs_dir: PathBuf,
|
|
/// S3 releases bucket URL
|
|
s3_release_bucket_uri: String,
|
|
/// S3 channels bucket URL
|
|
s3_channel_bucket_uri: String,
|
|
}
|
|
|
|
impl MirrorConfig {
|
|
pub fn release_bucket(&self) -> AmazonS3 {
|
|
AmazonS3Builder::from_env()
|
|
.with_bucket_name(&self.s3_release_bucket_uri)
|
|
.build()
|
|
.expect("Failed to connect to the S3 release bucket")
|
|
}
|
|
|
|
pub fn channel_bucket(&self) -> AmazonS3 {
|
|
AmazonS3Builder::from_env()
|
|
.with_bucket_name(&self.s3_channel_bucket_uri)
|
|
.build()
|
|
.expect("Failed to connect to the S3 channel bucket")
|
|
}
|
|
}
|