mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-01-31 00:35:19 +01:00
fix(cli.rs): crate packaging (#1481)
Co-authored-by: nothingismagick <denjell@mailscript.com>
This commit is contained in:
committed by
GitHub
parent
0ddcd7eed3
commit
5f3a12c557
1
.gitignore
vendored
1
.gitignore
vendored
@@ -70,7 +70,6 @@ TODO.md
|
||||
# Tauri output
|
||||
/bundle.json
|
||||
/config.json
|
||||
/src-tauri
|
||||
|
||||
# rust compiled folders
|
||||
target
|
||||
|
||||
@@ -6,6 +6,7 @@ version = "1.0.0-beta-rc.0"
|
||||
authors = [ "Lucas Nogueira <lucas@tauri.studio>" ]
|
||||
edition = "2018"
|
||||
license = "Apache-2.0 OR MIT"
|
||||
include = ["src/", "/templates", "MergeModules/", "*.json", "*.rs"]
|
||||
|
||||
[[bin]]
|
||||
name = "cargo-tauri"
|
||||
|
||||
8
tooling/cli.rs/metadata.json
Normal file
8
tooling/cli.rs/metadata.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"cli.js": {
|
||||
"version": "1.0.0-beta-rc.0",
|
||||
"node": ">= 10.17.0"
|
||||
},
|
||||
"tauri": "1.0.0-beta-rc.0",
|
||||
"tauri-build": "1.0.0-beta-rc.0"
|
||||
}
|
||||
@@ -116,13 +116,13 @@ impl Build {
|
||||
let _ = std::fs::remove_file(out_dir.join("Microsoft_VC142_CRT_x64.msm"));
|
||||
(
|
||||
"Microsoft_VC142_CRT_x86.msm",
|
||||
include_bytes!("./MergeModules/Microsoft_VC142_CRT_x86.msm").to_vec(),
|
||||
include_bytes!("../MergeModules/Microsoft_VC142_CRT_x86.msm").to_vec(),
|
||||
)
|
||||
} else {
|
||||
let _ = std::fs::remove_file(out_dir.join("Microsoft_VC142_CRT_x86.msm"));
|
||||
(
|
||||
"Microsoft_VC142_CRT_x64.msm",
|
||||
include_bytes!("./MergeModules/Microsoft_VC142_CRT_x64.msm").to_vec(),
|
||||
include_bytes!("../MergeModules/Microsoft_VC142_CRT_x64.msm").to_vec(),
|
||||
)
|
||||
};
|
||||
std::fs::write(out_dir.join(filename), vcruntime_msm)?;
|
||||
|
||||
@@ -16,17 +16,6 @@ use std::{
|
||||
process::Command,
|
||||
};
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct PackageJsonEngines {
|
||||
node: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct PackageJson {
|
||||
version: String,
|
||||
engines: PackageJsonEngines,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct YarnVersionInfo {
|
||||
data: Vec<String>,
|
||||
@@ -43,6 +32,17 @@ struct CargoLock {
|
||||
package: Vec<CargoLockPackage>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct JsCliVersionMetadata {
|
||||
version: String,
|
||||
node: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct VersionMetadata {
|
||||
js_cli: JsCliVersionMetadata,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize)]
|
||||
struct CargoManifestDependencyPackage {
|
||||
version: Option<String>,
|
||||
@@ -279,16 +279,15 @@ impl Info {
|
||||
|
||||
if let Some(node_version) = get_version("node", &[]).unwrap_or_default() {
|
||||
InfoBlock::new("Node.js environment").section().display();
|
||||
let cli_package_json: PackageJson =
|
||||
serde_json::from_str(include_str!("../../cli.js/package.json"))?;
|
||||
let metadata = serde_json::from_str::<VersionMetadata>(include_str!("../metadata.json"))?;
|
||||
VersionBlock::new(
|
||||
" Node.js",
|
||||
node_version.chars().skip(1).collect::<String>(),
|
||||
)
|
||||
.target_version(cli_package_json.engines.node.replace(">= ", ""))
|
||||
.target_version(metadata.js_cli.node.replace(">= ", ""))
|
||||
.display();
|
||||
|
||||
VersionBlock::new(" @tauri-apps/cli", cli_package_json.version)
|
||||
VersionBlock::new(" @tauri-apps/cli", metadata.js_cli.version)
|
||||
.target_version(npm_latest_version(use_yarn, "@tauri-apps/cli").unwrap_or_default())
|
||||
.display();
|
||||
if let Some(app_dir) = &app_dir {
|
||||
|
||||
@@ -14,16 +14,13 @@ use handlebars::{to_json, Handlebars};
|
||||
use include_dir::{include_dir, Dir};
|
||||
use serde::Deserialize;
|
||||
|
||||
const TEMPLATE_DIR: Dir = include_dir!("./templates");
|
||||
const TEMPLATE_DIR: Dir = include_dir!("templates");
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct ManifestPackage {
|
||||
version: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct Manifest {
|
||||
package: ManifestPackage,
|
||||
struct VersionMetadata {
|
||||
tauri: String,
|
||||
#[serde(rename = "tauri-build")]
|
||||
tauri_build: String,
|
||||
}
|
||||
|
||||
pub struct Init {
|
||||
@@ -93,6 +90,7 @@ impl Init {
|
||||
pub fn run(self) -> crate::Result<()> {
|
||||
let logger = Logger::new("tauri:init");
|
||||
let template_target_path = self.directory.join("src-tauri");
|
||||
let metadata = serde_json::from_str::<VersionMetadata>(include_str!("../metadata.json"))?;
|
||||
if template_target_path.exists() && !self.force {
|
||||
logger.warn(format!(
|
||||
"Tauri dir ({:?}) not empty. Run `init --force template` to overwrite.",
|
||||
@@ -111,16 +109,9 @@ impl Init {
|
||||
),
|
||||
)
|
||||
} else {
|
||||
let tauri_manifest: Manifest =
|
||||
toml::from_str(include_str!("../../../core/tauri/Cargo.toml")).unwrap();
|
||||
let tauri_build_manifest: Manifest =
|
||||
toml::from_str(include_str!("../../../core/tauri-build/Cargo.toml")).unwrap();
|
||||
(
|
||||
format!(r#"{{ version = "{}" }}"#, tauri_manifest.package.version),
|
||||
format!(
|
||||
r#"{{ version = "{}" }}"#,
|
||||
tauri_build_manifest.package.version
|
||||
),
|
||||
format!(r#"{{ version = "{}" }}"#, metadata.tauri),
|
||||
format!(r#"{{ version = "{}" }}"#, metadata.tauri_build),
|
||||
)
|
||||
};
|
||||
|
||||
@@ -166,7 +157,13 @@ fn render_template<P: AsRef<Path>>(
|
||||
) -> crate::Result<()> {
|
||||
create_dir_all(out_dir.as_ref().join(dir.path()))?;
|
||||
for file in dir.files() {
|
||||
let mut output_file = File::create(out_dir.as_ref().join(file.path()))?;
|
||||
let mut file_path = file.path().to_path_buf();
|
||||
// cargo for some reason ignores the /templates folder packaging when it has a Cargo.toml file inside
|
||||
// so we rename the extension to `.crate-manifest`
|
||||
if file_path.extension().unwrap() == "crate-manifest" {
|
||||
file_path.set_extension("toml");
|
||||
}
|
||||
let mut output_file = File::create(out_dir.as_ref().join(file_path))?;
|
||||
if let Some(utf8) = file.contents_utf8() {
|
||||
handlebars
|
||||
.render_template_to_write(utf8, &data, &mut output_file)
|
||||
|
||||
@@ -2,9 +2,3 @@
|
||||
# will have compiled files and executables
|
||||
/target/
|
||||
WixTools
|
||||
|
||||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
|
||||
config.json
|
||||
bundle.json
|
||||
|
||||
Reference in New Issue
Block a user