mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 20:43:41 +00:00
* feat: Start the long running container * feat: Long running docker, running, stoping, and uninstalling * feat: Just make the folders that we would like to mount. * fix: Uninstall not working * chore: remove some logging * feat: Smarter cleanup * feat: Wait for start * wip: Need to kill * chore: Remove the bad tracing * feat: Stopping the long running processes without killing the long running * Mino Feat: Change the Manifest To have a new type (#1736) * Add build-essential to README.md (#1716) Update README.md * write image to sparse-aware archive format (#1709) * fix: Add modification to the max_user_watches (#1695) * fix: Add modification to the max_user_watches * chore: Move to initialization * [Feat] follow logs (#1714) * tail logs * add cli * add FE * abstract http to shared * batch new logs * file download for logs * fix modal error when no config Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com> Co-authored-by: Aiden McClelland <me@drbonez.dev> Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> Co-authored-by: BluJ <mogulslayer@gmail.com> * Update README.md (#1728) * fix build for patch-db client for consistency (#1722) * fix cli install (#1720) * highlight instructions if not viewed (#1731) * wip: * [ ] Fix the build (dependencies:634 map for option) * fix: Cargo build * fix: Long running wasn't starting * fix: uninstall works Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com> Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Co-authored-by: Aiden McClelland <me@drbonez.dev> Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com> Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com> * chore: Fix a dbg! * chore: Make the commands of the docker-inject do inject instead of exec * chore: Fix compile mistake * chore: Change to use simpler Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com> Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Co-authored-by: Aiden McClelland <me@drbonez.dev> Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com> Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
52 lines
1.5 KiB
Rust
52 lines
1.5 KiB
Rust
use clap::ArgMatches;
|
|
use color_eyre::eyre::eyre;
|
|
use rpc_toolkit::command;
|
|
use serde_json::Value;
|
|
use tracing::instrument;
|
|
|
|
use crate::context::RpcContext;
|
|
use crate::procedure::ProcedureName;
|
|
use crate::s9pk::manifest::{Manifest, PackageId};
|
|
use crate::{Error, ErrorKind};
|
|
|
|
pub fn display_properties(response: Value, _: &ArgMatches) {
|
|
println!("{}", response);
|
|
}
|
|
|
|
#[command(display(display_properties))]
|
|
pub async fn properties(#[context] ctx: RpcContext, #[arg] id: PackageId) -> Result<Value, Error> {
|
|
Ok(fetch_properties(ctx, id).await?)
|
|
}
|
|
|
|
#[instrument(skip(ctx))]
|
|
pub async fn fetch_properties(ctx: RpcContext, id: PackageId) -> Result<Value, Error> {
|
|
let mut db = ctx.db.handle();
|
|
let manifest: Manifest = crate::db::DatabaseModel::new()
|
|
.package_data()
|
|
.idx_model(&id)
|
|
.and_then(|p| p.installed())
|
|
.map(|m| m.manifest())
|
|
.get(&mut db, true)
|
|
.await?
|
|
.to_owned()
|
|
.ok_or_else(|| Error::new(eyre!("{} is not installed", id), ErrorKind::NotFound))?;
|
|
if let Some(props) = manifest.properties {
|
|
props
|
|
.execute::<(), Value>(
|
|
&ctx,
|
|
&manifest.container,
|
|
&manifest.id,
|
|
&manifest.version,
|
|
ProcedureName::Properties,
|
|
&manifest.volumes,
|
|
None,
|
|
None,
|
|
)
|
|
.await?
|
|
.map_err(|(_, e)| Error::new(eyre!("{}", e), ErrorKind::Docker))
|
|
.and_then(|a| Ok(a))
|
|
} else {
|
|
Ok(Value::Null)
|
|
}
|
|
}
|