Skip to content

Commit

Permalink
feat: only prompt for pkg managers supported by template, closes #208 (
Browse files Browse the repository at this point in the history
…#209)

* feat: only prompt for pkg managers supported by template, closes #208

* clippy
  • Loading branch information
amrbashir committed Oct 10, 2022
1 parent 04fb4e6 commit 8ba553c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 23 deletions.
6 changes: 6 additions & 0 deletions .changes/pkg-manager-based-on-template.md
@@ -0,0 +1,6 @@
---
"create-tauri-app": "patch"
"create-tauri-app-js": "patch"
---

Only prompt for supported package managers when using `--template` cli option.
16 changes: 8 additions & 8 deletions README.md
Expand Up @@ -54,23 +54,23 @@ pnpm create tauri-app

<br>

You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a Vite + Vue project, run:
You can also directly specify the project name, package manager and the template you want to use via additional command line options. For example, to scaffold a Vue project in a `my-tauri-app` directory, using `pnpm`, run:

```bash
# curl
sh <(curl https://create.tauri.app/sh) --template svelte
sh <(curl https://create.tauri.app/sh) my-tauri-app --template svelte --manager pnpm
# wget
sh <(wget https://create.tauri.app/sh) --template svelte
sh <(wget https://create.tauri.app/sh) my-tauri-app --template svelte --manager pnpm
# cargo
cargo create-tauri-app --template svelte
cargo create-tauri-app my-tauri-app --template svelte --manager pnpm
# npm 6.x
npm create tauri-app@latest my-tauri-app --template svelte
npm create tauri-app@latest my-tauri-app --template svelte --manager pnpm
# npm 7+, extra double-dash is needed:
npm create tauri-app@latest my-tauri-app -- --template svelte
npm create tauri-app@latest my-tauri-app -- --template svelte --manager pnpm
# yarn
yarn create tauri-app my-tauri-app --template svelte
yarn create tauri-app my-tauri-app --template svelte --manager pnpm
# pnpm
pnpm create tauri-app my-tauri-app --template svelte
pnpm create tauri-app my-tauri-app --template svelte --manager pnpm
```

Currently supported template presets include:
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/README.md
Expand Up @@ -20,10 +20,10 @@ cargo create-tauri-app

<br>

You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a Vite + Vue project, run:
You can also directly specify the project name, package manager and the template you want to use via additional command line options. For example, to scaffold a Yew project in a `my-tauri-app` directory, using `cargo`, run:

```bash
cargo create-tauri-app --template svelte
cargo create-tauri-app my-tauri-app --template yew --manager cargo
```

Currently supported template presets include:
Expand Down
10 changes: 5 additions & 5 deletions packages/cli/node/README.md
Expand Up @@ -31,18 +31,18 @@ pnpm create tauri-app

<br>

You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a Vite + Vue project, run:
You can also directly specify the project name, package manager and the template you want to use via additional command line options. For example, to scaffold a Vue project in a `my-tauri-app` directory, using `pnpm`, run:


```bash
# npm 6.x
npm create tauri-app@latest my-tauri-app --template svelte
npm create tauri-app@latest my-tauri-app --template svelte --manager pnpm
# npm 7+, extra double-dash is needed:
npm create tauri-app@latest my-tauri-app -- --template svelte
npm create tauri-app@latest my-tauri-app -- --template svelte --manager pnpm
# yarn
yarn create tauri-app my-tauri-app --template svelte
yarn create tauri-app my-tauri-app --template svelte --manager pnpm
# pnpm
pnpm create tauri-app my-tauri-app --template svelte
pnpm create tauri-app my-tauri-app --template svelte --manager pnpm
```

Currently supported template presets include:
Expand Down
30 changes: 22 additions & 8 deletions packages/cli/src/lib.rs
Expand Up @@ -131,14 +131,28 @@ where
if skip {
defaults.manager.unwrap()
} else {
let managers = PackageManager::ALL;
let index = Select::with_theme(&ColorfulTheme::default())
.with_prompt("Choose your package manager")
.items(managers)
.default(0)
.interact()
.unwrap();
managers[index]
let managers = PackageManager::ALL.to_vec();
let managers = args
.template
.map(|t| {
managers
.iter()
.copied()
.filter(|p| p.templates().contains(&t))
.collect::<Vec<_>>()
})
.unwrap_or(managers);
if managers.len() == 1 {
managers[0]
} else {
let index = Select::with_theme(&ColorfulTheme::default())
.with_prompt("Choose your package manager")
.items(&managers)
.default(0)
.interact()
.unwrap();
managers[index]
}
}
});

Expand Down

0 comments on commit 8ba553c

Please sign in to comment.