From 40509ba913e52196b2dd7f3a733bec816d38bda0 Mon Sep 17 00:00:00 2001 From: mia Date: Mon, 3 Jun 2024 20:24:35 -0700 Subject: allow passing theme data in by stdin --- Cargo.lock | 2 +- Cargo.toml | 2 +- LICENSE | 25 +++++++++++++++---------- src/main.rs | 14 +++++++++++--- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2209fa6..bf6abc8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,7 +43,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cgit-syntect" -version = "0.1.0" +version = "0.1.1" dependencies = [ "syntect", ] diff --git a/Cargo.toml b/Cargo.toml index 928f8ba..3bee23e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgit-syntect" -version = "0.1.0" +version = "0.1.1" edition = "2021" [dependencies] diff --git a/LICENSE b/LICENSE index f875bc5..b27a5bb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,18 @@ Copyright 2024 mia -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main.rs b/src/main.rs index 9cc7b85..734dfd1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use std::{ - io::{stdout, BufWriter, Write}, + io::{stdout, BufWriter, Cursor, Read, Write}, path::PathBuf, str::FromStr, }; @@ -34,11 +34,19 @@ fn compile() { fn theme() { let mut args = std::env::args(); args.next(); // arg0 - let input: PathBuf = args.next().unwrap().into(); + let input = args.next().unwrap(); let css_path: PathBuf = args.next().unwrap().into(); let scopes_path: PathBuf = args.next().unwrap().into(); - let theme = ThemeSet::get_theme(input).unwrap(); + let theme = { + if input == "-" { + let mut buffer = Vec::new(); + std::io::stdin().read_to_end(&mut buffer).unwrap(); + ThemeSet::load_from_reader(&mut Cursor::new(buffer)).unwrap() + } else { + ThemeSet::get_theme(input).unwrap() + } + }; let mut css_gen = Vec::new(); let mut scopes_gen = Vec::new(); -- cgit 1.4.1