with codegen output

This commit is contained in:
Kasper Juul Hermansen 2023-01-29 15:23:03 +01:00
parent e5874141b3
commit 0bf6b0e91e
Signed by: kjuulh
GPG Key ID: 57B6E1465221F912
5 changed files with 31 additions and 5 deletions

View File

@ -1,10 +1,9 @@
use std::sync::Arc; use std::sync::Arc;
use genco::{prelude::rust, quote, quote_in}; use genco::{prelude::rust, quote};
use graphql_introspection_query::introspection_response::{ use graphql_introspection_query::introspection_response::{
FullType, IntrospectionResponse, Schema, FullType, IntrospectionResponse, Schema,
}; };
use itertools::Itertools;
use crate::{ use crate::{
handlers::{scalar::Scalar, DynHandler, Handlers}, handlers::{scalar::Scalar, DynHandler, Handlers},
@ -47,7 +46,6 @@ impl CodeGeneration {
for t in types { for t in types {
if let Some(_) = self.type_name(&t) { if let Some(_) = self.type_name(&t) {
let rendered = handler.render(&t)?; let rendered = handler.render(&t)?;
output.push(); output.push();
output.append(rendered); output.append(rendered);
} }

View File

@ -30,7 +30,7 @@ impl Handler for Scalar {
let name = t.name.as_ref().ok_or(eyre::anyhow!("name not found"))?; let name = t.name.as_ref().ok_or(eyre::anyhow!("name not found"))?;
Ok(quote! { Ok(quote! {
pub struct $name (Scalar); pub struct $name(Scalar);
}) })
} }

View File

@ -0,0 +1,23 @@
// code generated by dagger. DO NOT EDIT.
/// A content-addressed socket identifier.
pub struct SocketID(Scalar);
/// The platform config OS and architecture in a Container.
/// The format is [os]/[platform]/[version] (e.g. darwin/arm64/v7, windows/amd64, linux/arm64).
pub struct Platform(Scalar);
/// A unique container identifier. Null designates an empty container (scratch).
pub struct ContainerID(Scalar);
/// A content-addressed directory identifier.
pub struct DirectoryID(Scalar);
/// A unique identifier for a secret.
pub struct SecretID(Scalar);
/// A file identifier.
pub struct FileID(Scalar);
/// A global cache volume identifier.
pub struct CacheID(Scalar);

View File

@ -1,3 +1,5 @@
pub mod gen;
pub fn add(left: usize, right: usize) -> usize { pub fn add(left: usize, right: usize) -> usize {
left + right left + right
} }

View File

@ -1,3 +1,5 @@
use std::io::Write;
use clap::{Arg, ArgMatches}; use clap::{Arg, ArgMatches};
use dagger_codegen::codegen::CodeGeneration; use dagger_codegen::codegen::CodeGeneration;
@ -21,7 +23,8 @@ impl GenerateCommand {
let code = CodeGeneration::new().generate(&schema)?; let code = CodeGeneration::new().generate(&schema)?;
if let Some(output) = arg_matches.get_one::<String>("output") { if let Some(output) = arg_matches.get_one::<String>("output") {
// TODO: Write to file let mut file = std::fs::File::create(output)?;
file.write(code.as_bytes())?;
} else { } else {
println!("{}", code); println!("{}", code);
} }