parent
d44ba92363
commit
7a9e0b37ed
12
crates/schema_generator/README.md
Normal file
12
crates/schema_generator/README.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Zed Schema Generator
|
||||||
|
|
||||||
|
Prints various Zed schemas to stdout.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cargo run -p schema_generator -- --help
|
||||||
|
|
||||||
|
cargo run -p schema_generator -- theme
|
||||||
|
cargo run -p schema_generator -- icon_theme
|
||||||
|
```
|
@ -1,26 +1,36 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::{Parser, ValueEnum};
|
||||||
use schemars::schema_for;
|
use schemars::schema_for;
|
||||||
use theme::{IconThemeFamilyContent, ThemeFamilyContent};
|
use theme::{IconThemeFamilyContent, ThemeFamilyContent};
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
#[derive(Parser, Debug)]
|
||||||
struct Args {}
|
pub struct Args {
|
||||||
|
#[arg(value_enum)]
|
||||||
|
pub schema_type: SchemaType,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)]
|
||||||
|
#[clap(rename_all = "snake_case")]
|
||||||
|
pub enum SchemaType {
|
||||||
|
Theme,
|
||||||
|
IconTheme,
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
let _args = Args::parse();
|
let args = Args::parse();
|
||||||
|
|
||||||
let theme_family_schema = schema_for!(ThemeFamilyContent);
|
match args.schema_type {
|
||||||
println!("Theme Schema:");
|
SchemaType::Theme => {
|
||||||
println!("{}", serde_json::to_string_pretty(&theme_family_schema)?);
|
let schema = schema_for!(ThemeFamilyContent);
|
||||||
|
println!("{}", serde_json::to_string_pretty(&schema)?);
|
||||||
let icon_theme_family_schema = schema_for!(IconThemeFamilyContent);
|
}
|
||||||
println!("Icon Theme Schema:");
|
SchemaType::IconTheme => {
|
||||||
println!(
|
let schema = schema_for!(IconThemeFamilyContent);
|
||||||
"{}",
|
println!("{}", serde_json::to_string_pretty(&schema)?);
|
||||||
serde_json::to_string_pretty(&icon_theme_family_schema)?
|
}
|
||||||
);
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user