Skip to content

Commit

Permalink
Write completions and manfile to cargo outdir (cargo publish restrict…
Browse files Browse the repository at this point in the history
…ion)
  • Loading branch information
sharkdp committed Mar 22, 2020
1 parent 6386a4b commit 02f2b55
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
17 changes: 14 additions & 3 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ extern crate liquid;

use std::error::Error;
use std::fs;
use std::path::Path;

// Read environment variables.
lazy_static! {
Expand Down Expand Up @@ -42,7 +43,7 @@ fn init_template() -> liquid::value::Object {
fn template(
variables: &liquid::value::Object,
in_file: &str,
out_file: &str,
out_file: impl AsRef<Path>,
) -> Result<(), Box<dyn Error>> {
let template = liquid::ParserBuilder::with_liquid()
.build()?
Expand All @@ -55,11 +56,21 @@ fn template(
fn main() -> Result<(), Box<dyn Error>> {
let variables = init_template();

template(&variables, "assets/manual/bat.1.in", "assets/manual/bat.1")?;
let out_dir_env = std::env::var_os("OUT_DIR").expect("OUT_DIR to be set in build.rs");
let out_dir = Path::new(&out_dir_env);

std::fs::create_dir_all(out_dir.join("assets/manual")).unwrap();
std::fs::create_dir_all(out_dir.join("assets/completions")).unwrap();

template(
&variables,
"assets/manual/bat.1.in",
out_dir.join("assets/manual/bat.1"),
)?;
template(
&variables,
"assets/completions/bat.fish.in",
"assets/completions/bat.fish",
out_dir.join("assets/completions/bat.fish"),
)?;

Ok(())
Expand Down
8 changes: 4 additions & 4 deletions ci/before_deploy.bash
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pack() {
"${gcc_prefix}"strip "$tempdir/$package_name/$PROJECT_NAME"

# manpage, readme and license
cp "assets/manual/bat.1" "$tempdir/$package_name/$PROJECT_NAME.1"
cp "$out_dir/assets/manual/bat.1" "$tempdir/$package_name/$PROJECT_NAME.1"
cp README.md "$tempdir/$package_name"
cp LICENSE-MIT "$tempdir/$package_name"
cp LICENSE-APACHE "$tempdir/$package_name"
Expand All @@ -47,7 +47,7 @@ pack() {
# TODO: disabled for now, see issue #372
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".bash "$tempdir/$package_name/autocomplete/${PROJECT_NAME}.bash-completion"
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".fish "$tempdir/$package_name/autocomplete"
cp "assets/completions/bat.fish" "$tempdir/$package_name/autocomplete/$PROJECT_NAME.fish"
cp "$out_dir/assets/completions/bat.fish" "$tempdir/$package_name/autocomplete/$PROJECT_NAME.fish"
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/_"$PROJECT_NAME" "$tempdir/$package_name/autocomplete"

# archiving
Expand Down Expand Up @@ -108,11 +108,11 @@ make_deb() {
"${gcc_prefix}"strip "$tempdir/usr/bin/$PROJECT_NAME"

# manpage
install -Dm644 "assets/manual/bat.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
install -Dm644 "$out_dir/assets/manual/bat.1" "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
gzip --best "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"

# completions
install -Dm644 "assets/completions/bat.fish" "$tempdir/usr/share/fish/vendor_completions.d/$PROJECT_NAME.fish"
install -Dm644 "$out_dir/assets/completions/bat.fish" "$tempdir/usr/share/fish/vendor_completions.d/$PROJECT_NAME.fish"

# readme and license
install -Dm644 README.md "$tempdir/usr/share/doc/$PROJECT_NAME/README.md"
Expand Down

0 comments on commit 02f2b55

Please sign in to comment.