planetwars.dev/planetwars-server/src/modules/bots.rs

26 lines
762 B
Rust
Raw Normal View History

use std::path::PathBuf;
use diesel::{PgConnection, QueryResult};
use crate::{db, util::gen_alphanumeric, BOTS_DIR};
/// Save a string containing bot code as a code bundle.
pub fn save_code_string(
bot_code: &str,
bot_id: Option<i32>,
conn: &PgConnection,
2022-07-06 22:41:27 +02:00
) -> QueryResult<db::bots::BotVersion> {
let bundle_name = gen_alphanumeric(16);
let code_bundle_dir = PathBuf::from(BOTS_DIR).join(&bundle_name);
std::fs::create_dir(&code_bundle_dir).unwrap();
std::fs::write(code_bundle_dir.join("bot.py"), bot_code).unwrap();
2022-07-07 18:57:46 +02:00
let new_code_bundle = db::bots::NewBotVersion {
bot_id,
2022-07-07 18:57:46 +02:00
code_bundle_path: Some(&bundle_name),
container_digest: None,
};
2022-07-07 18:57:46 +02:00
db::bots::create_bot_version(&new_code_bundle, conn)
}