theme_importer: Add --output flag for outputting the theme to a file (#7486)

```bash
cargo run -p theme_importer -- dark-plus-syntax-color-theme.json --output output.json
```

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This commit is contained in:
d1y 2024-02-08 05:23:36 +08:00 committed by GitHub
parent e6dad23154
commit 45cf36e870
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 1 deletions

View File

@ -1 +1,5 @@
# Zed Theme Importer # Zed Theme Importer
```sh
cargo run -p theme_importer -- dark-plus-syntax-color-theme.json --output output-theme.json
```

View File

@ -4,6 +4,7 @@ mod util;
mod vscode; mod vscode;
use std::fs::File; use std::fs::File;
use std::io::Write;
use std::path::PathBuf; use std::path::PathBuf;
use anyhow::{Context, Result}; use anyhow::{Context, Result};
@ -75,6 +76,10 @@ struct Args {
#[arg(long)] #[arg(long)]
warn_on_missing: bool, warn_on_missing: bool,
/// The path to write the output to.
#[arg(long, short)]
output: Option<PathBuf>,
#[command(subcommand)] #[command(subcommand)]
command: Option<Command>, command: Option<Command>,
} }
@ -146,7 +151,12 @@ fn main() -> Result<()> {
let theme_json = serde_json::to_string_pretty(&theme).unwrap(); let theme_json = serde_json::to_string_pretty(&theme).unwrap();
println!("{}", theme_json); if let Some(output) = args.output {
let mut file = File::create(output)?;
file.write_all(theme_json.as_bytes())?;
} else {
println!("{}", theme_json);
}
log::info!("Done!"); log::info!("Done!");