Compare commits

...

4 Commits

11 changed files with 109 additions and 120 deletions

52
Cargo.lock generated
View File

@@ -114,7 +114,7 @@ version = "0.1.0"
dependencies = [
"clap",
"color-eyre",
"dagger-sdk 0.2.11",
"dagger-sdk",
"eyre",
"tokio",
]
@@ -249,7 +249,7 @@ name = "dagger-codegen"
version = "0.2.7"
dependencies = [
"convert_case",
"dagger-core 0.2.5",
"dagger-core",
"eyre",
"genco",
"itertools",
@@ -260,32 +260,7 @@ dependencies = [
[[package]]
name = "dagger-core"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71f74120a67a030e76c6039457909ba31e53fb022b0b633f5836f008eb4e1766"
dependencies = [
"clap",
"dirs",
"eyre",
"flate2",
"genco",
"graphql-introspection-query",
"graphql_client",
"hex",
"hex-literal",
"platform-info",
"reqwest",
"serde",
"serde_json",
"sha2",
"tar",
"tempfile",
"tokio",
]
[[package]]
name = "dagger-core"
version = "0.2.5"
version = "0.2.6"
dependencies = [
"clap",
"dirs",
@@ -313,7 +288,7 @@ dependencies = [
"clap",
"color-eyre",
"dagger-codegen",
"dagger-core 0.2.5",
"dagger-core",
"dirs",
"eyre",
"flate2",
@@ -332,29 +307,12 @@ dependencies = [
"tokio",
]
[[package]]
name = "dagger-sdk"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d86c5bf1ad09a730d6fc5c73c39664eb38b9843fc21dedfee4629976ae04cba4"
dependencies = [
"base64",
"dagger-core 0.2.4",
"derive_builder",
"eyre",
"futures",
"gql_client",
"serde",
"serde_json",
"tokio",
]
[[package]]
name = "dagger-sdk"
version = "0.2.12"
dependencies = [
"base64",
"dagger-core 0.2.5",
"dagger-core",
"derive_builder",
"eyre",
"futures",

View File

@@ -8,6 +8,6 @@ edition = "2021"
[dependencies]
clap = "4.1.6"
color-eyre = "0.6.2"
dagger-sdk = "0.2.11"
dagger-sdk = { path = "../crates/dagger-sdk/", version = "^0.2.12" }
eyre = "0.6.8"
tokio = { version = "1.25.0", features = ["full"] }

View File

@@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<csr-read-only-do-not-edit/>
- 1 commit contributed to the release.
- 2 commits contributed to the release.
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
@@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<details><summary>view details</summary>
* **Uncategorized**
- Release dagger-core v0.2.5, dagger-sdk v0.2.12, dagger-codegen v0.2.7 ([`1725c51`](https://github.com/kjuulh/dagger-rs/commit/1725c5188e8a81069ec4a4de569484c921a94927))
- race condition in process ([`a13a2a9`](https://github.com/kjuulh/dagger-rs/commit/a13a2a9ecbfdfac80ed8eb0cbb9e9db317da65de))
</details>

View File

@@ -11,7 +11,7 @@ publish = true
[dependencies]
convert_case = "0.6.0"
dagger-core = { path = "../dagger-core", version = "^0.2.5" }
dagger-core = { path = "../dagger-core", version = "^0.2.6" }
eyre = "0.6.8"
genco = "0.17.3"

View File

@@ -5,6 +5,35 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## v0.2.6 (2023-02-20)
### Chore
- <csr-id-1f77d90c0f0ac832a181b2322350ea395612986c/> ran clippy
### Bug Fixes
- <csr-id-8dfecf976c5537cc2c03881de2b2fd2b2508683a/> cli session keep session alive
### Commit Statistics
<csr-read-only-do-not-edit/>
- 2 commits contributed to the release.
- 2 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
* **Uncategorized**
- ran clippy ([`1f77d90`](https://github.com/kjuulh/dagger-rs/commit/1f77d90c0f0ac832a181b2322350ea395612986c))
- cli session keep session alive ([`8dfecf9`](https://github.com/kjuulh/dagger-rs/commit/8dfecf976c5537cc2c03881de2b2fd2b2508683a))
</details>
## v0.2.5 (2023-02-20)
### Bug Fixes
@@ -15,7 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<csr-read-only-do-not-edit/>
- 1 commit contributed to the release.
- 2 commits contributed to the release.
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
@@ -26,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<details><summary>view details</summary>
* **Uncategorized**
- Release dagger-core v0.2.5, dagger-sdk v0.2.12, dagger-codegen v0.2.7 ([`1725c51`](https://github.com/kjuulh/dagger-rs/commit/1725c5188e8a81069ec4a4de569484c921a94927))
- race condition in process ([`a13a2a9`](https://github.com/kjuulh/dagger-rs/commit/a13a2a9ecbfdfac80ed8eb0cbb9e9db317da65de))
</details>

View File

@@ -1,6 +1,6 @@
[package]
name = "dagger-core"
version = "0.2.5"
version = "0.2.6"
edition = "2021"
readme = "README.md"
license-file = "LICENSE.MIT"

View File

@@ -1,8 +1,7 @@
use std::{
fs::canonicalize,
io::{BufRead, BufReader},
path::PathBuf,
process::{Child, Stdio},
process::Stdio,
sync::Arc,
};
@@ -89,26 +88,21 @@ impl InnerCliSession {
let (sender, mut receiver) = tokio::sync::mpsc::channel(1);
tokio::spawn(async move {
let stdout_bufr = tokio::io::BufReader::new(stdout);
for line in stdout_bufr.lines().next_line().await {
let out = line.as_ref().unwrap();
if let Ok(conn) = serde_json::from_str::<ConnectParams>(&out) {
let mut stdout_bufr = tokio::io::BufReader::new(stdout).lines();
while let Ok(Some(line)) = stdout_bufr.next_line().await {
if let Ok(conn) = serde_json::from_str::<ConnectParams>(&line) {
sender.send(conn).await.unwrap();
}
if let Some(line) = line {
println!("dagger: {}", line);
}
}
});
tokio::spawn(async move {
let stdout_bufr = tokio::io::BufReader::new(stderr);
for line in stdout_bufr.lines().next_line().await {
if let Some(line) = line {
let mut stdout_bufr = tokio::io::BufReader::new(stderr).lines();
while let Ok(Some(line)) = stdout_bufr.next_line().await {
println!("dagger: {}", line);
}
//panic!("could not start dagger session: {}", out)
}
});
let conn = receiver.recv().await.ok_or(eyre::anyhow!("could not receive ok signal from dagger-engine"))?;

View File

@@ -1,4 +1,4 @@
use std::process::Child;
use crate::{
cli_session::CliSession, config::Config, connect_params::ConnectParams, downloader::Downloader,

View File

@@ -8,6 +8,10 @@ and this project adheres to
## v0.2.12 (2023-02-20)
### Chore
- <csr-id-1f77d90c0f0ac832a181b2322350ea395612986c/> ran clippy
### Bug Fixes
- <csr-id-a13a2a9ecbfdfac80ed8eb0cbb9e9db317da65de/> race condition in process
@@ -16,8 +20,8 @@ and this project adheres to
<csr-read-only-do-not-edit/>
- 1 commit contributed to the release.
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
- 3 commits contributed to the release.
- 2 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
@@ -27,6 +31,8 @@ and this project adheres to
<details><summary>view details</summary>
* **Uncategorized**
- ran clippy ([`1f77d90`](https://github.com/kjuulh/dagger-rs/commit/1f77d90c0f0ac832a181b2322350ea395612986c))
- Release dagger-core v0.2.5, dagger-sdk v0.2.12, dagger-codegen v0.2.7 ([`1725c51`](https://github.com/kjuulh/dagger-rs/commit/1725c5188e8a81069ec4a4de569484c921a94927))
- race condition in process ([`a13a2a9`](https://github.com/kjuulh/dagger-rs/commit/a13a2a9ecbfdfac80ed8eb0cbb9e9db317da65de))
</details>

View File

@@ -11,7 +11,7 @@ publish = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
dagger-core = { path = "../dagger-core", version = "^0.2.5" }
dagger-core = { path = "../dagger-core", version = "^0.2.6" }
base64 = "0.21.0"
eyre = "0.6.8"

View File

@@ -35,7 +35,7 @@ impl CacheVolume {
pub async fn id(
&self,
) -> eyre::Result<CacheId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}
@@ -216,7 +216,7 @@ impl Container {
pub async fn default_args(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("defaultArgs");
let query = self.selection.select("defaultArgs");
query.execute(&graphql_client(&self.conn)).await
}
@@ -239,7 +239,7 @@ impl Container {
pub async fn entrypoint(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("entrypoint");
let query = self.selection.select("entrypoint");
query.execute(&graphql_client(&self.conn)).await
}
@@ -258,7 +258,7 @@ impl Container {
pub fn env_variables(
&self,
) -> Vec<EnvVariable> {
let mut query = self.selection.select("envVariables");
let query = self.selection.select("envVariables");
return vec![EnvVariable {
proc: self.proc.clone(),
@@ -274,7 +274,7 @@ impl Container {
pub fn exec(
&self,
) -> Container {
let mut query = self.selection.select("exec");
let query = self.selection.select("exec");
return Container {
proc: self.proc.clone(),
@@ -321,7 +321,7 @@ impl Container {
pub async fn exit_code(
&self,
) -> eyre::Result<isize> {
let mut query = self.selection.select("exitCode");
let query = self.selection.select("exitCode");
query.execute(&graphql_client(&self.conn)).await
}
@@ -405,7 +405,7 @@ impl Container {
pub fn fs(
&self,
) -> Directory {
let mut query = self.selection.select("fs");
let query = self.selection.select("fs");
return Directory {
proc: self.proc.clone(),
@@ -417,7 +417,7 @@ impl Container {
pub async fn id(
&self,
) -> eyre::Result<ContainerId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}
@@ -436,7 +436,7 @@ impl Container {
pub fn labels(
&self,
) -> Vec<Label> {
let mut query = self.selection.select("labels");
let query = self.selection.select("labels");
return vec![Label {
proc: self.proc.clone(),
@@ -448,7 +448,7 @@ impl Container {
pub async fn mounts(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("mounts");
let query = self.selection.select("mounts");
query.execute(&graphql_client(&self.conn)).await
}
@@ -499,7 +499,7 @@ impl Container {
pub async fn platform(
&self,
) -> eyre::Result<Platform> {
let mut query = self.selection.select("platform");
let query = self.selection.select("platform");
query.execute(&graphql_client(&self.conn)).await
}
@@ -546,7 +546,7 @@ impl Container {
pub fn rootfs(
&self,
) -> Directory {
let mut query = self.selection.select("rootfs");
let query = self.selection.select("rootfs");
return Directory {
proc: self.proc.clone(),
@@ -559,7 +559,7 @@ impl Container {
pub async fn stderr(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("stderr");
let query = self.selection.select("stderr");
query.execute(&graphql_client(&self.conn)).await
}
@@ -568,7 +568,7 @@ impl Container {
pub async fn stdout(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("stdout");
let query = self.selection.select("stdout");
query.execute(&graphql_client(&self.conn)).await
}
@@ -576,7 +576,7 @@ impl Container {
pub async fn user(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("user");
let query = self.selection.select("user");
query.execute(&graphql_client(&self.conn)).await
}
@@ -588,7 +588,7 @@ impl Container {
pub fn with_default_args(
&self,
) -> Container {
let mut query = self.selection.select("withDefaultArgs");
let query = self.selection.select("withDefaultArgs");
return Container {
proc: self.proc.clone(),
@@ -1188,7 +1188,7 @@ impl Container {
pub async fn workdir(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("workdir");
let query = self.selection.select("workdir");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1298,7 +1298,7 @@ impl Directory {
pub fn docker_build(
&self,
) -> Container {
let mut query = self.selection.select("dockerBuild");
let query = self.selection.select("dockerBuild");
return Container {
proc: self.proc.clone(),
@@ -1345,7 +1345,7 @@ impl Directory {
pub async fn entries(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("entries");
let query = self.selection.select("entries");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1397,7 +1397,7 @@ impl Directory {
pub async fn id(
&self,
) -> eyre::Result<DirectoryId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1703,7 +1703,7 @@ impl EnvVariable {
pub async fn name(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("name");
let query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1711,7 +1711,7 @@ impl EnvVariable {
pub async fn value(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("value");
let query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1727,7 +1727,7 @@ impl File {
pub async fn contents(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("contents");
let query = self.selection.select("contents");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1746,7 +1746,7 @@ impl File {
pub async fn id(
&self,
) -> eyre::Result<FileId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1754,7 +1754,7 @@ impl File {
pub fn secret(
&self,
) -> Secret {
let mut query = self.selection.select("secret");
let query = self.selection.select("secret");
return Secret {
proc: self.proc.clone(),
@@ -1766,7 +1766,7 @@ impl File {
pub async fn size(
&self,
) -> eyre::Result<isize> {
let mut query = self.selection.select("size");
let query = self.selection.select("size");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1806,7 +1806,7 @@ impl GitRef {
pub async fn digest(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("digest");
let query = self.selection.select("digest");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1818,7 +1818,7 @@ impl GitRef {
pub fn tree(
&self,
) -> Directory {
let mut query = self.selection.select("tree");
let query = self.selection.select("tree");
return Directory {
proc: self.proc.clone(),
@@ -1878,7 +1878,7 @@ impl GitRepository {
pub async fn branches(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("branches");
let query = self.selection.select("branches");
query.execute(&graphql_client(&self.conn)).await
}
@@ -1916,7 +1916,7 @@ impl GitRepository {
pub async fn tags(
&self,
) -> eyre::Result<Vec<String>> {
let mut query = self.selection.select("tags");
let query = self.selection.select("tags");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2029,7 +2029,7 @@ impl Host {
pub fn workdir(
&self,
) -> Directory {
let mut query = self.selection.select("workdir");
let query = self.selection.select("workdir");
return Directory {
proc: self.proc.clone(),
@@ -2074,7 +2074,7 @@ impl HostVariable {
pub fn secret(
&self,
) -> Secret {
let mut query = self.selection.select("secret");
let query = self.selection.select("secret");
return Secret {
proc: self.proc.clone(),
@@ -2086,7 +2086,7 @@ impl HostVariable {
pub async fn value(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("value");
let query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2102,7 +2102,7 @@ impl Label {
pub async fn name(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("name");
let query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2110,7 +2110,7 @@ impl Label {
pub async fn value(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("value");
let query = self.selection.select("value");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2126,7 +2126,7 @@ impl Project {
pub fn extensions(
&self,
) -> Vec<Project> {
let mut query = self.selection.select("extensions");
let query = self.selection.select("extensions");
return vec![Project {
proc: self.proc.clone(),
@@ -2138,7 +2138,7 @@ impl Project {
pub fn generated_code(
&self,
) -> Directory {
let mut query = self.selection.select("generatedCode");
let query = self.selection.select("generatedCode");
return Directory {
proc: self.proc.clone(),
@@ -2150,7 +2150,7 @@ impl Project {
pub async fn install(
&self,
) -> eyre::Result<bool> {
let mut query = self.selection.select("install");
let query = self.selection.select("install");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2158,7 +2158,7 @@ impl Project {
pub async fn name(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("name");
let query = self.selection.select("name");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2166,7 +2166,7 @@ impl Project {
pub async fn schema(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("schema");
let query = self.selection.select("schema");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2174,7 +2174,7 @@ impl Project {
pub async fn sdk(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("sdk");
let query = self.selection.select("sdk");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2248,7 +2248,7 @@ impl Query {
pub fn container(
&self,
) -> Container {
let mut query = self.selection.select("container");
let query = self.selection.select("container");
return Container {
proc: self.proc.clone(),
@@ -2287,7 +2287,7 @@ impl Query {
pub async fn default_platform(
&self,
) -> eyre::Result<Platform> {
let mut query = self.selection.select("defaultPlatform");
let query = self.selection.select("defaultPlatform");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2299,7 +2299,7 @@ impl Query {
pub fn directory(
&self,
) -> Directory {
let mut query = self.selection.select("directory");
let query = self.selection.select("directory");
return Directory {
proc: self.proc.clone(),
@@ -2391,7 +2391,7 @@ impl Query {
pub fn host(
&self,
) -> Host {
let mut query = self.selection.select("host");
let query = self.selection.select("host");
return Host {
proc: self.proc.clone(),
@@ -2495,7 +2495,7 @@ impl Query {
pub fn socket(
&self,
) -> Socket {
let mut query = self.selection.select("socket");
let query = self.selection.select("socket");
return Socket {
proc: self.proc.clone(),
@@ -2537,7 +2537,7 @@ impl Secret {
pub async fn id(
&self,
) -> eyre::Result<SecretId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2545,7 +2545,7 @@ impl Secret {
pub async fn plaintext(
&self,
) -> eyre::Result<String> {
let mut query = self.selection.select("plaintext");
let query = self.selection.select("plaintext");
query.execute(&graphql_client(&self.conn)).await
}
@@ -2561,7 +2561,7 @@ impl Socket {
pub async fn id(
&self,
) -> eyre::Result<SocketId> {
let mut query = self.selection.select("id");
let query = self.selection.select("id");
query.execute(&graphql_client(&self.conn)).await
}