Skip to content

Commit 10fb027

Browse files
authored
fix(cli): migrate v1 plugin dependencies, prevent dup, closes #10650 (#10656)
1 parent 255d64e commit 10fb027

File tree

6 files changed

+46
-5
lines changed

6 files changed

+46
-5
lines changed

.changes/migrate-plugins.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"tauri-cli": patch:bug
3+
"@tauri-apps/cli": patch:bug
4+
---
5+
6+
Migrate v1 plugins to their v2 releases.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"tauri-cli": patch:bug
3+
"@tauri-apps/cli": patch:bug
4+
---
5+
6+
Prevent duplicate permissions on v1 migration.

tooling/cli/src/add.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ pub struct Options {
3939

4040
pub fn command(options: Options) -> Result<()> {
4141
crate::helpers::app_paths::resolve();
42+
run(options)
43+
}
4244

45+
pub fn run(options: Options) -> Result<()> {
4346
let (plugin, version) = options
4447
.plugin
4548
.split_once('@')

tooling/cli/src/migrate/migrations/v1/config.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -386,13 +386,16 @@ fn allowlist_to_permissions(
386386
allowlist: tauri_utils_v1::config::AllowlistConfig,
387387
) -> Vec<PermissionEntry> {
388388
macro_rules! permissions {
389-
($allowlist: ident, $permissions_list: ident, $object: ident, $field: ident => $associated_permission: expr) => {
389+
($allowlist: ident, $permissions_list: ident, $object: ident, $field: ident => $associated_permission: expr) => {{
390390
if $allowlist.all || $allowlist.$object.all || $allowlist.$object.$field {
391391
$permissions_list.push(PermissionEntry::PermissionRef(
392392
$associated_permission.to_string().try_into().unwrap(),
393393
));
394+
true
395+
} else {
396+
false
394397
}
395-
};
398+
}};
396399
}
397400

398401
let mut permissions = Vec::new();
@@ -474,8 +477,11 @@ fn allowlist_to_permissions(
474477

475478
// shell
476479
if allowlist.shell.scope.0.is_empty() {
477-
permissions!(allowlist, permissions, shell, execute => "shell:allow-execute");
478-
permissions!(allowlist, permissions, shell, sidecar => "shell:allow-execute");
480+
let added = permissions!(allowlist, permissions, shell, execute => "shell:allow-execute");
481+
// prevent duplicated permission
482+
if !added {
483+
permissions!(allowlist, permissions, shell, sidecar => "shell:allow-execute");
484+
}
479485
} else {
480486
let allowed = allowlist
481487
.shell

tooling/cli/src/migrate/migrations/v1/manifest.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,22 @@ fn migrate_manifest(manifest: &mut Document) -> Result<()> {
4545
("tauri-codegen", "dependencies"),
4646
("tauri-macros", "dependencies"),
4747
("tauri-runtime-wry", "dependencies"),
48+
// normal deps - plugins
49+
("tauri-plugin-authenticator", "dependencies"),
50+
("tauri-plugin-autostart", "dependencies"),
51+
("tauri-plugin-fs-extra", "dependencies"),
52+
("tauri-plugin-fs-watch", "dependencies"),
53+
("tauri-plugin-localhost", "dependencies"),
54+
("tauri-plugin-log", "dependencies"),
55+
("tauri-plugin-persisted-scope", "dependencies"),
56+
("tauri-plugin-positioner", "dependencies"),
57+
("tauri-plugin-single-instance", "dependencies"),
58+
("tauri-plugin-sql", "dependencies"),
59+
("tauri-plugin-store", "dependencies"),
60+
("tauri-plugin-stronghold", "dependencies"),
61+
("tauri-plugin-upload", "dependencies"),
62+
("tauri-plugin-websocket", "dependencies"),
63+
("tauri-plugin-window-state", "dependencies"),
4864
// dev
4965
("tauri", "dev-dependencies"),
5066
("tauri-utils", "dev-dependencies"),
@@ -207,6 +223,10 @@ fn migrate_dependency_table<D: TableLike>(
207223
remove: &[&str],
208224
rename: &[(&str, &str)],
209225
) {
226+
dep.remove("rev");
227+
dep.remove("git");
228+
dep.remove("branch");
229+
dep.remove("tag");
210230
*dep.entry("version").or_insert(Item::None) = Item::Value(version.into());
211231
let manifest_features = dep.entry("features").or_insert(Item::None);
212232
if let Some(features_array) = manifest_features.as_array_mut() {

tooling/cli/src/migrate/migrations/v1/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ pub fn run() -> Result<()> {
2525

2626
// Add plugins
2727
for plugin in migrated.plugins {
28-
crate::add::command(crate::add::Options {
28+
crate::add::run(crate::add::Options {
2929
plugin: plugin.clone(),
3030
branch: None,
3131
tag: None,

0 commit comments

Comments
 (0)