mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2024-11-25 16:32:42 +01:00
fix: stable input fields and args
This commit is contained in:
parent
9677304ff4
commit
dca142b1e6
@ -3,6 +3,7 @@ use dagger_core::introspection::{FullTypeFields, TypeRef};
|
|||||||
use genco::prelude::rust;
|
use genco::prelude::rust;
|
||||||
use genco::quote;
|
use genco::quote;
|
||||||
use genco::tokens::quoted;
|
use genco::tokens::quoted;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::functions::{
|
use crate::functions::{
|
||||||
type_field_has_optional, type_ref_is_enum, type_ref_is_list, type_ref_is_list_of_objects,
|
type_field_has_optional, type_ref_is_enum, type_ref_is_list, type_ref_is_list_of_objects,
|
||||||
@ -405,6 +406,7 @@ pub fn format_optional_args(
|
|||||||
.map(|t| {
|
.map(|t| {
|
||||||
t.into_iter()
|
t.into_iter()
|
||||||
.filter(|t| type_ref_is_optional(&t.input_value.type_))
|
.filter(|t| type_ref_is_optional(&t.input_value.type_))
|
||||||
|
.sorted_by_key(|val| &val.input_value.name)
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
})
|
})
|
||||||
.pipe(|t| render_optional_field_args(funcs, t))
|
.pipe(|t| render_optional_field_args(funcs, t))
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use dagger_core::introspection::{FullType, FullTypeInputFields};
|
use dagger_core::introspection::{FullType, FullTypeInputFields};
|
||||||
use genco::prelude::rust;
|
use genco::prelude::rust;
|
||||||
use genco::quote;
|
use genco::quote;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::functions::CommonFunctions;
|
use crate::functions::CommonFunctions;
|
||||||
use crate::rust::functions::{format_name, format_struct_name};
|
use crate::rust::functions::{format_name, format_struct_name};
|
||||||
@ -20,7 +21,10 @@ pub fn render_input_fields(
|
|||||||
funcs: &CommonFunctions,
|
funcs: &CommonFunctions,
|
||||||
fields: &[FullTypeInputFields],
|
fields: &[FullTypeInputFields],
|
||||||
) -> Option<rust::Tokens> {
|
) -> Option<rust::Tokens> {
|
||||||
let rendered_fields = fields.iter().map(|f| render_input_field(funcs, f));
|
let rendered_fields = fields
|
||||||
|
.iter()
|
||||||
|
.sorted_by_key(|val| &val.input_value.name)
|
||||||
|
.map(|f| render_input_field(funcs, f));
|
||||||
|
|
||||||
if rendered_fields.len() == 0 {
|
if rendered_fields.len() == 0 {
|
||||||
None
|
None
|
||||||
|
@ -106,8 +106,8 @@ impl Into<SocketId> for String {
|
|||||||
}
|
}
|
||||||
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
|
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
|
||||||
pub struct BuildArg {
|
pub struct BuildArg {
|
||||||
pub value: String,
|
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
pub value: String,
|
||||||
}
|
}
|
||||||
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
|
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
|
||||||
pub struct PipelineLabel {
|
pub struct PipelineLabel {
|
||||||
@ -137,13 +137,13 @@ pub struct Container {
|
|||||||
|
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerBuildOpts<'a> {
|
pub struct ContainerBuildOpts<'a> {
|
||||||
|
/// Additional build arguments.
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub build_args: Option<Vec<BuildArg>>,
|
||||||
/// Path to the Dockerfile to use.
|
/// Path to the Dockerfile to use.
|
||||||
/// Default: './Dockerfile'.
|
/// Default: './Dockerfile'.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub dockerfile: Option<&'a str>,
|
pub dockerfile: Option<&'a str>,
|
||||||
/// Additional build arguments.
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub build_args: Option<Vec<BuildArg>>,
|
|
||||||
/// Target build stage to build.
|
/// Target build stage to build.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub target: Option<&'a str>,
|
pub target: Option<&'a str>,
|
||||||
@ -162,20 +162,20 @@ pub struct ContainerExecOpts<'a> {
|
|||||||
/// Command to run instead of the container's default command (e.g., ["run", "main.go"]).
|
/// Command to run instead of the container's default command (e.g., ["run", "main.go"]).
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub args: Option<Vec<&'a str>>,
|
pub args: Option<Vec<&'a str>>,
|
||||||
/// Content to write to the command's standard input before closing (e.g., "Hello world").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub stdin: Option<&'a str>,
|
|
||||||
/// Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub redirect_stdout: Option<&'a str>,
|
|
||||||
/// Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub redirect_stderr: Option<&'a str>,
|
|
||||||
/// Provide dagger access to the executed command.
|
/// Provide dagger access to the executed command.
|
||||||
/// Do not use this option unless you trust the command being executed.
|
/// Do not use this option unless you trust the command being executed.
|
||||||
/// The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
|
/// The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub experimental_privileged_nesting: Option<bool>,
|
pub experimental_privileged_nesting: Option<bool>,
|
||||||
|
/// Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub redirect_stderr: Option<&'a str>,
|
||||||
|
/// Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub redirect_stdout: Option<&'a str>,
|
||||||
|
/// Content to write to the command's standard input before closing (e.g., "Hello world").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub stdin: Option<&'a str>,
|
||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerExportOpts {
|
pub struct ContainerExportOpts {
|
||||||
@ -217,15 +217,6 @@ pub struct ContainerWithDirectoryOpts<'a> {
|
|||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerWithExecOpts<'a> {
|
pub struct ContainerWithExecOpts<'a> {
|
||||||
/// Content to write to the command's standard input before closing (e.g., "Hello world").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub stdin: Option<&'a str>,
|
|
||||||
/// Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub redirect_stdout: Option<&'a str>,
|
|
||||||
/// Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub redirect_stderr: Option<&'a str>,
|
|
||||||
/// Provides dagger access to the executed command.
|
/// Provides dagger access to the executed command.
|
||||||
/// Do not use this option unless you trust the command being executed.
|
/// Do not use this option unless you trust the command being executed.
|
||||||
/// The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
|
/// The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
|
||||||
@ -237,15 +228,24 @@ pub struct ContainerWithExecOpts<'a> {
|
|||||||
/// when absolutely necessary and only with trusted commands.
|
/// when absolutely necessary and only with trusted commands.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub insecure_root_capabilities: Option<bool>,
|
pub insecure_root_capabilities: Option<bool>,
|
||||||
|
/// Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub redirect_stderr: Option<&'a str>,
|
||||||
|
/// Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub redirect_stdout: Option<&'a str>,
|
||||||
|
/// Content to write to the command's standard input before closing (e.g., "Hello world").
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub stdin: Option<&'a str>,
|
||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerWithExposedPortOpts<'a> {
|
pub struct ContainerWithExposedPortOpts<'a> {
|
||||||
/// Transport layer network protocol
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub protocol: Option<NetworkProtocol>,
|
|
||||||
/// Optional port description
|
/// Optional port description
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub description: Option<&'a str>,
|
pub description: Option<&'a str>,
|
||||||
|
/// Transport layer network protocol
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub protocol: Option<NetworkProtocol>,
|
||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerWithFileOpts {
|
pub struct ContainerWithFileOpts {
|
||||||
@ -256,12 +256,12 @@ pub struct ContainerWithFileOpts {
|
|||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerWithMountedCacheOpts {
|
pub struct ContainerWithMountedCacheOpts {
|
||||||
/// Identifier of the directory to use as the cache volume's root.
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub source: Option<DirectoryId>,
|
|
||||||
/// Sharing mode of the cache volume.
|
/// Sharing mode of the cache volume.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub sharing: Option<CacheSharingMode>,
|
pub sharing: Option<CacheSharingMode>,
|
||||||
|
/// Identifier of the directory to use as the cache volume's root.
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub source: Option<DirectoryId>,
|
||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct ContainerWithNewFileOpts<'a> {
|
pub struct ContainerWithNewFileOpts<'a> {
|
||||||
@ -1485,6 +1485,9 @@ pub struct Directory {
|
|||||||
|
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct DirectoryDockerBuildOpts<'a> {
|
pub struct DirectoryDockerBuildOpts<'a> {
|
||||||
|
/// Build arguments to use in the build.
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub build_args: Option<Vec<BuildArg>>,
|
||||||
/// Path to the Dockerfile to use (e.g., "frontend.Dockerfile").
|
/// Path to the Dockerfile to use (e.g., "frontend.Dockerfile").
|
||||||
/// Defaults: './Dockerfile'.
|
/// Defaults: './Dockerfile'.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
@ -1492,9 +1495,6 @@ pub struct DirectoryDockerBuildOpts<'a> {
|
|||||||
/// The platform to build.
|
/// The platform to build.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub platform: Option<Platform>,
|
pub platform: Option<Platform>,
|
||||||
/// Build arguments to use in the build.
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub build_args: Option<Vec<BuildArg>>,
|
|
||||||
/// Target build stage to build.
|
/// Target build stage to build.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub target: Option<&'a str>,
|
pub target: Option<&'a str>,
|
||||||
@ -2073,10 +2073,10 @@ pub struct GitRef {
|
|||||||
|
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct GitRefTreeOpts<'a> {
|
pub struct GitRefTreeOpts<'a> {
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub ssh_known_hosts: Option<&'a str>,
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub ssh_auth_socket: Option<SocketId>,
|
pub ssh_auth_socket: Option<SocketId>,
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub ssh_known_hosts: Option<&'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GitRef {
|
impl GitRef {
|
||||||
@ -2480,12 +2480,12 @@ pub struct QueryDirectoryOpts {
|
|||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct QueryGitOpts {
|
pub struct QueryGitOpts {
|
||||||
/// Set to true to keep .git directory.
|
|
||||||
#[builder(setter(into, strip_option), default)]
|
|
||||||
pub keep_git_dir: Option<bool>,
|
|
||||||
/// A service which must be started before the repo is fetched.
|
/// A service which must be started before the repo is fetched.
|
||||||
#[builder(setter(into, strip_option), default)]
|
#[builder(setter(into, strip_option), default)]
|
||||||
pub experimental_service_host: Option<ContainerId>,
|
pub experimental_service_host: Option<ContainerId>,
|
||||||
|
/// Set to true to keep .git directory.
|
||||||
|
#[builder(setter(into, strip_option), default)]
|
||||||
|
pub keep_git_dir: Option<bool>,
|
||||||
}
|
}
|
||||||
#[derive(Builder, Debug, PartialEq)]
|
#[derive(Builder, Debug, PartialEq)]
|
||||||
pub struct QueryHttpOpts {
|
pub struct QueryHttpOpts {
|
||||||
|
Loading…
Reference in New Issue
Block a user