0 | |
From f18009e5d57bb4ee03511a9a2b6fd933d58d539f Mon Sep 17 00:00:00 2001
|
1 | |
From: sharkdp <davidpeter@web.de>
|
2 | |
Date: Sun, 20 Sep 2020 19:50:39 +0200
|
3 | |
Subject: [PATCH] Remove 'liquid' dependency
|
4 | |
|
5 | |
---
|
6 | |
CHANGELOG.md | 4 +-
|
7 | |
Cargo.lock | 272 -----------------------------------------
|
8 | |
Cargo.toml | 8 +-
|
9 | |
assets/manual/bat.1.in | 2 +-
|
10 | |
build.rs | 28 +++--
|
11 | |
5 files changed, 24 insertions(+), 290 deletions(-)
|
12 | |
|
13 | |
Index: bat/Cargo.toml
|
14 | |
===================================================================
|
15 | |
--- bat.orig/Cargo.toml
|
16 | |
+++ bat/Cargo.toml
|
17 | |
@@ -109,12 +109,8 @@ version = "0.3"
|
18 | |
version = "2.33"
|
19 | |
optional = true
|
20 | |
|
21 | |
-[build-dependencies.liquid]
|
22 | |
-version = "0.21"
|
23 | |
-optional = true
|
24 | |
-
|
25 | |
[features]
|
26 | |
-application = ["atty", "clap", "dirs", "git", "lazy_static", "liquid", "paging", "wild", "regex-onig"]
|
27 | |
+application = ["atty", "clap", "dirs", "git", "lazy_static", "paging", "wild", "regex-onig"]
|
28 | |
default = ["application"]
|
29 | |
git = ["git2"]
|
30 | |
paging = ["shell-words"]
|
31 | |
Index: bat/assets/manual/bat.1.in
|
32 | |
===================================================================
|
33 | |
--- bat.orig/assets/manual/bat.1.in
|
34 | |
+++ bat/assets/manual/bat.1.in
|
35 | |
@@ -1,4 +1,4 @@
|
36 | |
-.TH {{PROJECT_EXECUTABLE | upcase}} "1"
|
37 | |
+.TH {{PROJECT_EXECUTABLE_UPPERCASE}} "1"
|
38 | |
.SH NAME
|
39 | |
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
40 | |
.SH "USAGE"
|
41 | |
Index: bat/build.rs
|
42 | |
===================================================================
|
43 | |
--- bat.orig/build.rs
|
44 | |
+++ bat/build.rs
|
45 | |
@@ -8,6 +8,7 @@ fn main() {}
|
46 | |
|
47 | |
#[cfg(feature = "application")]
|
48 | |
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
49 | |
+ use std::collections::HashMap;
|
50 | |
use std::error::Error;
|
51 | |
use std::fs;
|
52 | |
use std::path::Path;
|
53 | |
@@ -15,27 +16,32 @@ fn main() -> Result<(), Box<dyn std::err
|
54 | |
// Read environment variables.
|
55 | |
let project_name = option_env!("PROJECT_NAME").unwrap_or("bat");
|
56 | |
let executable_name = option_env!("PROJECT_EXECUTABLE").unwrap_or(project_name);
|
57 | |
+ let executable_name_uppercase = executable_name.to_uppercase();
|
58 | |
static PROJECT_VERSION: &str = env!("CARGO_PKG_VERSION");
|
59 | |
|
60 | |
- /// Generates a file from a liquid template.
|
61 | |
+ /// Generates a file from a template.
|
62 | |
fn template(
|
63 | |
- variables: &liquid::Object,
|
64 | |
+ variables: &HashMap<&str, &str>,
|
65 | |
in_file: &str,
|
66 | |
out_file: impl AsRef<Path>,
|
67 | |
) -> Result<(), Box<dyn Error>> {
|
68 | |
- let template = liquid::ParserBuilder::with_stdlib()
|
69 | |
- .build()?
|
70 | |
- .parse(&fs::read_to_string(in_file)?)?;
|
71 | |
+ let mut content = fs::read_to_string(in_file)?;
|
72 | |
|
73 | |
- fs::write(out_file, template.render(variables)?)?;
|
74 | |
+ for (variable_name, value) in variables {
|
75 | |
+ // Replace {{variable_name}} by the value
|
76 | |
+ let pattern = format!("{{{{{variable_name}}}}}", variable_name = variable_name);
|
77 | |
+ content = content.replace(&pattern, value);
|
78 | |
+ }
|
79 | |
+
|
80 | |
+ fs::write(out_file, content)?;
|
81 | |
Ok(())
|
82 | |
}
|
83 | |
|
84 | |
- let variables = liquid::object!({
|
85 | |
- "PROJECT_NAME": project_name,
|
86 | |
- "PROJECT_EXECUTABLE": executable_name,
|
87 | |
- "PROJECT_VERSION": PROJECT_VERSION,
|
88 | |
- });
|
89 | |
+ let mut variables = HashMap::new();
|
90 | |
+ variables.insert("PROJECT_NAME", project_name);
|
91 | |
+ variables.insert("PROJECT_EXECUTABLE", executable_name);
|
92 | |
+ variables.insert("PROJECT_EXECUTABLE_UPPERCASE", &executable_name_uppercase);
|
93 | |
+ variables.insert("PROJECT_VERSION", PROJECT_VERSION);
|
94 | |
|
95 | |
let out_dir_env = std::env::var_os("OUT_DIR").expect("OUT_DIR to be set in build.rs");
|
96 | |
let out_dir = Path::new(&out_dir_env);
|