mirror of
https://github.com/martinvonz/jj.git
synced 2024-11-24 06:19:42 +00:00
build: fix cargo publish
by symlinking cli/docs->docs
I think `cargo publish` will currently fail because of the `include_str!()` in `cli/src/commands/help.rs` pointing to `../../../docs/`, i.e. outside of the crate directory. This patch attempts to fix that creating a `cli/docs` symlink to `docs` and makes the `include_str!` use that symlink. I hope the symlink will be resolved at `cargo publish` time so it also works in the published crate. Because symlinks don't work well on Windows, I updated `cli/build.rs` to include the original path (the one pointing outside the crate) if `cli/docs` is not a symlink, so the regular build still should work on Windows (but `cargo publish` won't). Thanks to Yuya for proposing this solution.
This commit is contained in:
parent
10424481f7
commit
e4bf147164
5 changed files with 12 additions and 2 deletions
|
@ -18,6 +18,7 @@ include = [
|
||||||
"/build.rs",
|
"/build.rs",
|
||||||
"/examples/",
|
"/examples/",
|
||||||
"/src/",
|
"/src/",
|
||||||
|
"/docs/**",
|
||||||
"/testing/",
|
"/testing/",
|
||||||
"/tests/",
|
"/tests/",
|
||||||
"!*.pending-snap",
|
"!*.pending-snap",
|
||||||
|
|
|
@ -37,6 +37,14 @@ fn main() {
|
||||||
} else {
|
} else {
|
||||||
println!("cargo:rustc-env=JJ_VERSION={version}");
|
println!("cargo:rustc-env=JJ_VERSION={version}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let docs_symlink_path = Path::new("docs");
|
||||||
|
println!("cargo:rerun-if-changed={}", docs_symlink_path.display());
|
||||||
|
if docs_symlink_path.join("index.md").exists() {
|
||||||
|
println!("cargo:rustc-env=JJ_DOCS_DIR=docs/");
|
||||||
|
} else {
|
||||||
|
println!("cargo:rustc-env=JJ_DOCS_DIR=../docs/");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_git_hash() -> Option<String> {
|
fn get_git_hash() -> Option<String> {
|
||||||
|
|
1
cli/docs
Symbolic link
1
cli/docs
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../docs
|
|
@ -98,12 +98,12 @@ const KEYWORDS: &[Keyword] = &[
|
||||||
Keyword {
|
Keyword {
|
||||||
name: "revsets",
|
name: "revsets",
|
||||||
description: "A functional language for selecting a set of revision",
|
description: "A functional language for selecting a set of revision",
|
||||||
content: include_str!("../../../docs/revsets.md"),
|
content: include_str!(concat!("../../", env!("JJ_DOCS_DIR"), "revsets.md")),
|
||||||
},
|
},
|
||||||
Keyword {
|
Keyword {
|
||||||
name: "tutorial",
|
name: "tutorial",
|
||||||
description: "Show a tutorial to get started with jj",
|
description: "Show a tutorial to get started with jj",
|
||||||
content: include_str!("../../../docs/tutorial.md"),
|
content: include_str!(concat!("../../", env!("JJ_DOCS_DIR"), "tutorial.md")),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
0
foo bar
Normal file
0
foo bar
Normal file
Loading…
Reference in a new issue