on master help sign in
Write completions and manfile to cargo outdir (cargo publish restriction)
commit02f2b55d5f50d7c897b63584f8732b3033e645d5 authorsharkdp <davidpeter@web.de> dateSun 22 Mar 2020, 11:33 (7 years ago) parent6386a4b
2 files changed+18−7
build.rs+14−3 ci/before_deploy.bash+4−4
build.rs+14−3
@@ -7,6 +7,7 @@ extern crate liquid;
77
88use std::error::Error;
99use std::fs;
10+use std::path::Path;
1011
1112// Read environment variables.
1213lazy_static! {
@@ -42,7 +43,7 @@ fn init_template() -> liquid::value::Object {
4243fn template(
4344 variables: &liquid::value::Object,
4445 in_file: &str,
45− out_file: &str,
46+ out_file: impl AsRef<Path>,
4647) -> Result<(), Box<dyn Error>> {
4748 let template = liquid::ParserBuilder::with_liquid()
4849 .build()?
@@ -55,11 +56,21 @@ fn template(
5556fn main() -> Result<(), Box<dyn Error>> {
5657 let variables = init_template();
5758
58− template(&variables, "assets/manual/bat.1.in", "assets/manual/bat.1")?;
59+ let out_dir_env = std::env::var_os("OUT_DIR").expect("OUT_DIR to be set in build.rs");
60+ let out_dir = Path::new(&out_dir_env);
61+
62+ std::fs::create_dir_all(out_dir.join("assets/manual")).unwrap();
63+ std::fs::create_dir_all(out_dir.join("assets/completions")).unwrap();
64+
65+ template(
66+ &variables,
67+ "assets/manual/bat.1.in",
68+ out_dir.join("assets/manual/bat.1"),
69+ )?;
5970 template(
6071 &variables,
6172 "assets/completions/bat.fish.in",
62− "assets/completions/bat.fish",
73+ out_dir.join("assets/completions/bat.fish"),
6374 )?;
6475
6576 Ok(())
ci/before_deploy.bash+4−4
@@ -38,7 +38,7 @@ pack() {
3838 "${gcc_prefix}"strip "$tempdir/$package_name/$PROJECT_NAME"
3939
4040 # manpage, readme and license
41− cp "assets/manual/bat.1" "$tempdir/$package_name/$PROJECT_NAME.1"
41+ cp "$out_dir/assets/manual/bat.1" "$tempdir/$package_name/$PROJECT_NAME.1"
4242 cp README.md "$tempdir/$package_name"
4343 cp LICENSE-MIT "$tempdir/$package_name"
4444 cp LICENSE-APACHE "$tempdir/$package_name"
@@ -47,7 +47,7 @@ pack() {
4747 # TODO: disabled for now, see issue #372
4848 # cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".bash "$tempdir/$package_name/autocomplete/${PROJECT_NAME}.bash-completion"
4949 # cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".fish "$tempdir/$package_name/autocomplete"
50− cp "assets/completions/bat.fish" "$tempdir/$package_name/autocomplete/$PROJECT_NAME.fish"
50+ cp "$out_dir/assets/completions/bat.fish" "$tempdir/$package_name/autocomplete/$PROJECT_NAME.fish"
5151 # cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/_"$PROJECT_NAME" "$tempdir/$package_name/autocomplete"
5252
5353 # archiving
@@ -108,11 +108,11 @@ make_deb() {
108108 "${gcc_prefix}"strip "$tempdir/usr/bin/$PROJECT_NAME"
109109
110110 # manpage
111− install -Dm644 "assets/manual/bat.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
111+ install -Dm644 "$out_dir/assets/manual/bat.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
112112 gzip --best "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
113113
114114 # completions
115− install -Dm644 "assets/completions/bat.fish" "$tempdir/usr/share/fish/vendor_completions.d/$PROJECT_NAME.fish"
115+ install -Dm644 "$out_dir/assets/completions/bat.fish" "$tempdir/usr/share/fish/vendor_completions.d/$PROJECT_NAME.fish"
116116
117117 # readme and license
118118 install -Dm644 README.md "$tempdir/usr/share/doc/$PROJECT_NAME/README.md"