summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-11-05 11:53:05 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-11-05 11:53:22 +0100
commit51c0e6284fbf8e1ea2184a6cd279fd9bbe4ed293 (patch)
tree85d8c12f79525b574e9ed88dc3d1a4a5f569f34d /src/main.rs
parentc2e2e949f4edb97aa4dde6a9e7f8e5b6f2699243 (diff)
Add inserting of image name into database
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index f46ce9c..c8e1c84 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -121,6 +121,7 @@ async fn build<'a>(matches: &ArgMatches,
use crate::db::models::{Package, NewPackage};
use schema::packages;
use schema::githashes;
+ use schema::images;
let release_dir = async move {
let variables = BTreeMap::new();
@@ -176,6 +177,8 @@ async fn build<'a>(matches: &ArgMatches,
tree.add_package(package.clone(), &repo, bar_tree_building.clone())?;
bar_tree_building.finish_with_message("Finished loading Tree");
+ let image_name = matches.value_of("image").unwrap(); // safe by clap
+
let db_package = {
use crate::schema::packages::*;
@@ -214,6 +217,24 @@ async fn build<'a>(matches: &ArgMatches,
.load::<crate::db::models::GitHash>(&database_connection)?
};
+ let db_image = {
+ use crate::schema::images::*;
+ use crate::db::models::NewImage;
+
+ let new_image = NewImage { name: &image_name };
+
+ diesel::insert_into(images::table)
+ .values(&new_image)
+ .on_conflict_do_nothing()
+ .execute(&database_connection)?;
+
+ crate::schema::images::dsl::images
+ .filter(name.eq(&image_name))
+ .limit(1)
+ .load::<crate::db::models::Image>(&database_connection)?
+ };
+
+
Ok(())
}