mirror of
https://github.com/Noratrieb/jsonformat.git
synced 2026-01-14 22:25:01 +01:00
added #3 support drag and drop in windows
This commit is contained in:
parent
427f285f24
commit
f05b911415
2 changed files with 23 additions and 2 deletions
19
src/main.rs
19
src/main.rs
|
|
@ -6,9 +6,10 @@ use std::io::Read;
|
|||
|
||||
fn main() -> Result<(), io::Error> {
|
||||
let matches = clap_app!(jsonformat =>
|
||||
(version: "1.0")
|
||||
(version: "1.1")
|
||||
(author: "nilstrieb <nilstrieb@gmail.com>")
|
||||
(about: "Formats json from stdin or from a file")
|
||||
(@arg stdout: -s --stdout "Output the result to stdout instead of the default output file. Windows only.")
|
||||
(@arg indentation: -i --indent +takes_value "Set the indentation used (\\s for space, \\t for tab)")
|
||||
(@arg output: -o --output +takes_value "The output file for the formatted json")
|
||||
(@arg input: "The input file to format")
|
||||
|
|
@ -37,7 +38,21 @@ fn main() -> Result<(), io::Error> {
|
|||
|
||||
let formatted = format_json(&str, replaced_indent.as_deref());
|
||||
|
||||
match matches.value_of("output") {
|
||||
let mut output = matches.value_of("output");
|
||||
let mut windows_output_default_file: Option<String> = None;
|
||||
|
||||
#[cfg(windows)]
|
||||
if !matches.is_present("stdout") {
|
||||
if let Some(file) = matches.value_of("input") {
|
||||
// on windows, set the default output file if no stdout flag is provided
|
||||
// this makes it work with drag and drop in windows explorer
|
||||
windows_output_default_file = Some(file.replace(".json", "_f.json"))
|
||||
}
|
||||
}
|
||||
|
||||
output = windows_output_default_file.as_deref().or(output);
|
||||
|
||||
match output {
|
||||
Some(file) => {
|
||||
fs::write(file, formatted)?;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue