diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
new file mode 100644
index 0000000..e3c88ba
--- /dev/null
+++ b/.github/workflows/rust.yml
@@ -0,0 +1,49 @@
+name: build
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ build-rust:
+ strategy:
+ matrix:
+ platform: [ubuntu-latest]
+ runs-on: ${{ matrix.platform }}
+ steps:
+ - uses: actions/checkout@v2
+ - name: Cache cargo registry
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo/registry
+ key: ${{ runner.os }}-cargo-registry
+ - name: Cache cargo index
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo/git
+ key: ${{ runner.os }}-cargo-index
+ - name: Cache cargo build
+ uses: actions/cache@v1
+ with:
+ path: rust/target
+ key: ${{ runner.os }}-cargo-build-target
+ - name: Install stable
+ uses: actions-rs/toolchain@v1
+ with:
+ profile: minimal
+ toolchain: stable
+ override: true
+ - name: Check code format
+ run: cargo fmt -- --check
+ - name: Check the package for errors
+ run: cargo check --all
+ - name: Lint rust sources
+ run: cargo clippy --all-targets --all-features --tests --benches -- -D warnings
+ - name: Run tests
+ run: RUST_BACKTRACE=1 cargo test --all-features -- --test-threads=1 --nocapture
+ - name: Generate docs
+ run: cargo doc --all-features --no-deps
diff --git a/Cargo.lock b/Cargo.lock
index a54286a..4cc1cda 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -798,7 +798,7 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
[[package]]
name = "salvo-cli"
-version = "0.1.11"
+version = "0.1.19"
dependencies = [
"ansi_term",
"anyhow",
diff --git a/Cargo.toml b/Cargo.toml
index 93fbd59..e3abfe2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "salvo-cli"
-version = "0.1.11"
+version = "0.1.19"
edition = "2021"
authors = ["Fankai Liu liufankai137@outlook.com"]
keywords = ["salvo", "cli","template"]
diff --git a/README.md b/README.md
index c30fb31..0d34a23 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,20 @@
+
+
+
+
-# Salvo CLI
+## Introduction
Salvo CLI is a command-line interface tool for the [Salvo](https://github.com/salvo-rs/salvo) web framework. It helps streamline the process of setting up a new Salvo project by generating a template structure.
@@ -8,32 +23,88 @@ Salvo CLI is a command-line interface tool for the [Salvo](https://github.com/sa
```bash
cargo install salvo-cli
```
+
## Usage
+
To create a new Salvo project, use the new command followed by the name of your project:
```bash
+//use the local language
salvo-cli new project_name
+
+// Use English
+salvo-cli new project_name --lang=en
+
+// 使用简体中文
+salvo-cli new project_name --lang=zh
+
+// 使用繁體中文
+salvo-cli new project_name --lang=zh_TW
+
+// Utilisez le français
+salvo-cli new project_name --lang=fr
+
+// 日本語を使用する
+salvo-cli new project_name --lang=ja
+
+// Usa el español
+salvo-cli new project_name --lang=es
+
+// Verwenden Sie Deutsch
+salvo-cli new project_name --lang=de
+
+// Используйте русский
+salvo-cli new project_name --lang=ru
+
+// Usa l `italiano
+salvo-cli new project_name --lang=it
+
+// Use o português
+salvo-cli new project_name --lang=pt
+
+// 한국어를 사용하십시오
+salvo-cli new project_name --lang=ko
+
+// Bruk norsk
+salvo-cli new project_name --lang=no
+
+// Notaðu íslensku
+salvo-cli new project_name --lang=is
+
+// Використовуйте українську
+salvo-cli new project_name --lang=uk
+
+// ใช้ภาษาไทย
+salvo-cli new project_name --lang=th
+
+// Χρησιμοποιήστε την ελληνική
+salvo-cli new project_name --lang=el
+
+// Brug dansk
+salvo-cli new project_name --lang=da
```
+
## Update
+
```bashs
cargo install --force salvo-cli
```
### Feature Development Plan
-| Status |Plan |
-|:---:|:---:|
-|✅| web api template |
-|✅| web site with template |
-|✅|with sqlx template|
-|✅|basic midware |
-|✅|suport sqlite,pgsql,mysql|
-|✅|with seaorm template|
-|✅| better web site |
-|✅| with diesel template|
-|| with Rbatis template|
+| Status | Plan |
+| :----: | :--------------------------------------------------------------------------------: |
+| ✅ | web api template |
+| ✅ | web site template |
+| ✅ | Template with SQLx, SeaORM, Diesel, Rbatis (support for SQLite, PostgreSQL, MySQL) |
+| ✅ | Basic middleware |
+| ⏳ | More middleware |
+| ⏳ | Support for MongoDB |
+
## License
+
This project is licensed under the MIT OR Apache-2.0 License.
## Contributing
+
Contributions are welcome! Please feel free to submit a Pull Request.
diff --git a/locales/app.yml b/locales/app.yml
index ff37518..415693e 100644
--- a/locales/app.yml
+++ b/locales/app.yml
@@ -382,4 +382,22 @@ select_db_type:
uk: виберіть тип бази даних
th: เลือกประเภทฐานข้อมูล
el: επιλέξτε τύπο βάσης δεδομένων
- da: vælg databasetype
\ No newline at end of file
+ da: vælg databasetype
+access_instructions:
+ en: After running it, you can access /login with the default username:zhangsan and password:123
+ zh_CN: 运行之后,您可以使用默认用户名:zhangsan和密码:123访问/login
+ zh_TW: 運行之後,您可以使用預設的使用者名稱:zhangsan和密碼:123來訪問/login
+ fr: Après l'avoir exécuté, vous pouvez accéder à /login avec le nom d'utilisateur par défaut:zhangsan et le mot de passe:123
+ ja: 実行した後、デフォルトのユーザー名:zhangsanとパスワード:123で/loginにアクセスできます
+ es: Después de ejecutarlo, puedes acceder a /login con el nombre de usuario predeterminado:zhangsan y la contraseña:123
+ de: Nach dem Ausführen können Sie sich mit dem Standard-Benutzernamen:zhangsan und Passwort:123 bei /login anmelden
+ ru: После запуска вы можете войти в /login с использованием стандартного имени пользователя:zhangsan и пароля:123
+ it: Dopo averlo eseguito, è possibile accedere a /login con il nome utente predefinito:zhangsan e la password:123
+ pt: Depois de executá-lo, você pode acessar /login com o nome de usuário padrão:zhangsan e a senha:123
+ ko: 실행한 후 기본 사용자 이름:zhangsan 및 비밀번호:123으로 /login에 접속할 수 있습니다
+ no: Etter at du har kjørt det, kan du få tilgang til /login med standard brukernavn:zhangsan og passord:123
+ is: Eftir að hafa keyrt það, getur þú notað /login með sjálfgefna notendanafnið:zhangsan og lykilorðið:123
+ uk: Після його запуску Ви можете отримати доступ до /login за допомогою стандартного імені користувача:zhangsan та пароля:123
+ th: หลังจากทำการรันแล้ว คุณสามารถเข้าถึง /login ด้วยชื่อผู้ใช้งานเริ่มต้น:zhangsan และรหัสผ่าน:123
+ el: Αφού το τρέξετε, μπορείτε να προσπελάσετε το /login με το προεπιλεγμένο όνομα χρήστη:zhangsan και τον κωδικό πρόσβασης:123
+ da: Efter du har kørt det, kan du få adgang til /login med standard brugernavn:zhangsan og adgangskode:123
\ No newline at end of file
diff --git a/locales/code_comment.yml b/locales/code_comment.yml
index 605811b..b5a8956 100644
--- a/locales/code_comment.yml
+++ b/locales/code_comment.yml
@@ -437,23 +437,23 @@ create_success_sea_orm:
el: 🐚 Επιλέξατε sea-orm, η τεκμηρίωση μπορεί να προβληθεί εδώ:https://www.sea-ql.org/SeaORM/docs/index/
da: 🐚 Du har valgt sea-orm, dokumentationen kan ses her:https://www.sea-ql.org/SeaORM/docs/index/
create_success_sqlx_sqlite:
- en: 🎯 Default database created in `/data/demo.db`.\n After running it, you can access /login with the default username:zhangsan and password:123.
- zh_CN: 🎯 默认数据库创建在`/data/demo.db`。\n 运行后,您可以使用默认用户名:zhangsan和密码:123访问/login。
- zh_TW: 🎯 預設資料庫創建在`/data/demo.db`。\n 運行後,您可以使用預設用戶名:zhangsan和密碼:123訪問/login。
- fr: 🎯 Base de données par défaut créée dans `/data/demo.db`. \n Après l'avoir exécuté, vous pouvez accéder à /login avec le nom d'utilisateur par défaut:zhangsan et le mot de passe:123.
- ja: 🎯 デフォルトのデータベースが`/data/demo.db`に作成されました。\n 実行後、デフォルトのユーザー名:zhangsanとパスワード:123で/loginにアクセスできます。
- es: 🎯 Base de datos predeterminada creada en `/data/demo.db`. \n Después de ejecutarlo, puede acceder a /login con el nombre de usuario predeterminado:zhangsan y la contraseña:123.
+ en: 🎯 Default database created in `/data/demo.db`.\n After running it, you can access /login with the default username:zhangsan and password:123
+ zh_CN: 🎯 默认数据库创建在`/data/demo.db`。\n 运行后,您可以使用默认用户名:zhangsan和密码:123访问/login
+ zh_TW: 🎯 預設資料庫創建在`/data/demo.db`。\n 運行後,您可以使用預設用戶名:zhangsan和密碼:123訪問/login
+ fr: 🎯 Base de données par défaut créée dans `/data/demo.db`. \n Après l'avoir exécuté, vous pouvez accéder à /login avec le nom d'utilisateur par défaut:zhangsan et le mot de passe:123
+ ja: 🎯 デフォルトのデータベースが`/data/demo.db`に作成されました。\n 実行後、デフォルトのユーザー名:zhangsanとパスワード:123で/loginにアクセスできます
+ es: 🎯 Base de datos predeterminada creada en `/data/demo.db`. \n Después de ejecutarlo, puede acceder a /login con el nombre de usuario predeterminado:zhangsan y la contraseña:123
de: 🎯 Standarddatenbank erstellt in `/data/demo.db`. \n Nach dem Ausführen können Sie mit dem Standardbenutzernamen:zhangsan und dem Passwort:123 auf /login zugreifen.
- ru: 🎯 База данных по умолчанию создана в `/data/demo.db`. \n После запуска вы можете получить доступ к /login с именем пользователя по умолчанию:zhangsan и паролем:123.
- it: 🎯 Database predefinita creata in `/data/demo.db`. \n Dopo l'esecuzione, è possibile accedere a /login con l'username predefinito:zhangsan e la password:123.
- pt: 🎯 Banco de dados padrão criado em `/data/demo.db`. \n Após executá-lo, você pode acessar /login com o nome de usuário padrão:zhangsan e a senha:123.
+ ru: 🎯 База данных по умолчанию создана в `/data/demo.db`. \n После запуска вы можете получить доступ к /login с именем пользователя по умолчанию:zhangsan и паролем:123
+ it: 🎯 Database predefinita creata in `/data/demo.db`. \n Dopo l'esecuzione, è possibile accedere a /login con l'username predefinito:zhangsan e la password:123
+ pt: 🎯 Banco de dados padrão criado em `/data/demo.db`. \n Após executá-lo, você pode acessar /login com o nome de usuário padrão:zhangsan e a senha:123
ko: 🎯 기본 데이터베이스가 `/data/demo.db`에 생성되었습니다. \n 실행 후 기본 사용자 이름:zhangsan과 비밀번호:123으로 /login에 접속할 수 있습니다.
- no: 🎯 Standarddatabasen er opprettet i `/data/demo.db`. \n Etter å ha kjørt det, kan du få tilgang til /login med standard brukernavn:zhangsan og passord:123.
- is: 🎯 Sjálfgefin gagnagrunn búin til í `/data/demo.db`. \n Eftir að hafa keyrt það, getur þú fengið aðgang að /login með sjálfgefnum notandanafni:zhangsan og lykilorði:123.
- uk: 🎯 База даних за замовчуванням створена в `/data/demo.db`. \n Після запуску ви можете отримати доступ до /login за допомогою імені користувача за замовчуванням:zhangsan та пароля:123.
- th: 🎯 สร้างฐานข้อมูลเริ่มต้นใน `/data/demo.db`. \n หลังจากเรียกใช้งาน คุณสามารถเข้าถึง /login ด้วยชื่อผู้ใช้เริ่มต้น:zhangsan และรหัสผ่าน:123.
- el: 🎯 Δημιουργήθηκε η προεπιλεγμένη βάση δεδομένων στο `/data/demo.db`. \n Μετά την εκτέλεσή του, μπορείτε να αποκτήσετε πρόσβαση στο /login με το όνομα χρήστη:zhangsan και τον κωδικό πρόσβασης:123.
- da: 🎯 Standarddatabasen er oprettet i `/data/demo.db`. \n Efter at have kørt det, kan du få adgang til /login med standardbrugernavnet:zhangsan og adgangskoden:123.
+ no: 🎯 Standarddatabasen er opprettet i `/data/demo.db`. \n Etter å ha kjørt det, kan du få tilgang til /login med standard brukernavn:zhangsan og passord:123
+ is: 🎯 Sjálfgefin gagnagrunn búin til í `/data/demo.db`. \n Eftir að hafa keyrt það, getur þú fengið aðgang að /login með sjálfgefnum notandanafni:zhangsan og lykilorði:123
+ uk: 🎯 База даних за замовчуванням створена в `/data/demo.db`. \n Після запуску ви можете отримати доступ до /login за допомогою імені користувача за замовчуванням:zhangsan та пароля:123
+ th: 🎯 สร้างฐานข้อมูลเริ่มต้นใน `/data/demo.db`. \n หลังจากเรียกใช้งาน คุณสามารถเข้าถึง /login ด้วยชื่อผู้ใช้เริ่มต้น:zhangsan และรหัสผ่าน:123
+ el: 🎯 Δημιουργήθηκε η προεπιλεγμένη βάση δεδομένων στο `/data/demo.db`. \n Μετά την εκτέλεσή του, μπορείτε να αποκτήσετε πρόσβαση στο /login με το όνομα χρήστη:zhangsan και τον κωδικό πρόσβασης:123
+ da: 🎯 Standarddatabasen er oprettet i `/data/demo.db`. \n Efter at have kørt det, kan du få adgang til /login med standardbrugernavnet:zhangsan og adgangskoden:123
create_success_mysql_or_pgsql:
en: 📊 Follow the instructions in the data/init_sql.sql file to complete the initialization of data
zh_CN: 📊 按照data/init_sql.sql文件中的说明完成数据初始化
@@ -545,20 +545,38 @@ create_success_diesel__mysql_or_pgsql_fist_use:
el: -- Παρακαλώ αλλάξτε πρώτα τη συμβολοσειρά σύνδεσης στη βάση δεδομένων στο .env και config/config.toml \n -- Βεβαιωθείτε ότι η βάση δεδομένων υπάρχει, στη συνέχεια εκτελέστε τη μετεγκατάσταση diesel για να επαναφέρετε τη βάση δεδομένων, και εκτελέστε το παρακάτω SQL στη βάση δεδομένων για να προσθέσετε τα προεπιλεγμένα δεδομένα. \n -- Μετά την εκτέλεση, μπορείτε να χρησιμοποιήσετε το προεπιλεγμένο όνομα χρήστη:zhangsan και τον κωδικό:123 για να έχετε πρόσβαση στο /login. \n -- Για περισσότερες λειτουργίες του diesel-cli, παρακαλώ δείτε το /migration/README.md.
da: -- Ændre først forbindelsesstrengen til databasen i .env og config/config.toml \n -- Sørg for, at databasen eksisterer, kør derefter diesel migration run for at gendanne databasen, og kør den følgende SQL i databasen for at tilføje standarddataene. \n -- Efter kørsel, kan du bruge standard brugernavnet:zhangsan og adgangskoden:123 for at få adgang til /login. \n -- For mere funktionalitet fra diesel-cli, se venligst /migration/README.md.
create_success_rbatis:
- en: 🎯 Reminder:Please modify the database connection string in the /config/config.toml file before running it
- zh_CN: 🎯 提醒:在运行之前,请在 /config/config.toml 文件中修改数据库连接字符串
- zh_TW: 🎯 提醒:在運行之前,請在 /config/config.toml 文件中修改數據庫連接字符串
- fr: 🎯 Rappel:Veuillez modifier la chaîne de connexion à la base de données dans le fichier /config/config.toml avant de l'exécuter
- ja: 🎯 リマインダー:実行する前に、/config/config.toml ファイル内のデータベース接続文字列を変更してください
- es: 🎯 Recordatorio:Por favor modifique la cadena de conexión de la base de datos en el archivo /config/config.toml antes de ejecutarlo
- de: 🎯 Erinnerung:Bitte ändern Sie die Datenbankverbindungszeichenfolge in der /config/config.toml-Datei, bevor Sie sie ausführen
- ru: 🎯 Напоминание:Перед запуском измените строку подключения к базе данных в файле /config/config.toml
- it: 🎯 Promemoria:Modificare la stringa di connessione al database nel file /config/config.toml prima di eseguirlo
- pt: 🎯 Lembrete:Por favor, modifique a string de conexão do banco de dados no arquivo /config/config.toml antes de executá-lo
- ko: 🎯 알림:실행하기 전에 /config/config.toml 파일에서 데이터베이스 연결 문자열을 수정하세요
- no: 🎯 Påminnelse:Vennligst endre databaseforbindelsesstrengen i /config/config.toml-filen før du kjører den
- is: 🎯 Áminning:Vinsamlegast breyttu gagnagrunnstengistrenginu í /config/config.toml skránni áður en þú keyrir það
- uk: 🎯 Нагадування:Будь ласка, змініть рядок підключення до бази даних у файлі /config/config.toml перед його запуском
- th: 🎯 แจ้งเตือน:โปรดแก้ไขสตริงการเชื่อมต่อฐานข้อมูลในไฟล์ /config/config.toml ก่อนที่จะทำการรัน
- el: 🎯 Υπενθύμιση:Παρακαλώ τροποποιήστε τη συμβολοσειρά σύνδεσης βάσης δεδομένων στο αρχείο /config/config.toml πριν το τρέξετε
- da: 🎯 Påmindelse:Ændr venligst databaseforbindelsesstrengen i /config/config.toml-filen, før du kører den
\ No newline at end of file
+ en: 🎯 Reminder:Please modify the database connection string in the /config/config.toml file before running it \n you can access /login with the default username:zhangsan and password:123
+ zh_CN: 🎯 提醒:在运行之前,请在 /config/config.toml 文件中修改数据库连接字符串 \n 您可以使用默认用户名:zhangsan和密码:123访问/login
+ zh_TW: 🎯 提醒:在運行之前,請在 /config/config.toml 文件中修改數據庫連接字符串 \n 您可以使用默認用戶名:zhangsan和密碼:123訪問/login
+ fr: 🎯 Rappel:Veuillez modifier la chaîne de connexion à la base de données dans le fichier /config/config.toml avant de l'exécuter \n vous pouvez accéder à /login avec le nom d'utilisateur par défaut:zhangsan et le mot de passe:123
+ ja: 🎯 リマインダー:実行する前に、/config/config.toml ファイル内のデータベース接続文字列を変更してください \n デフォルトのユーザー名:zhangsanとパスワード:123で/loginにアクセスできます
+ es: 🎯 Recordatorio:Por favor modifique la cadena de conexión de la base de datos en el archivo /config/config.toml antes de ejecutarlo \n puede acceder a /login con el nombre de usuario predeterminado:zhangsan y la contraseña:123
+ de: 🎯 Erinnerung:Bitte ändern Sie die Datenbankverbindungszeichenfolge in der /config/config.toml-Datei, bevor Sie sie ausführen \n Sie können sich mit dem Standard-Benutzernamen:zhangsan und Passwort:123 bei /login anmelden
+ ru: 🎯 Напоминание:Перед запуском измените строку подключения к базе данных в файле /config/config.toml \n вы можете войти в /login с использованием стандартного имени пользователя:zhangsan и пароля:123
+ it: 🎯 Promemoria:Modificare la stringa di connessione al database nel file /config/config.toml prima di eseguirlo \n è possibile accedere a /login con il nome utente predefinito:zhangsan e la password:123
+ pt: 🎯 Lembrete:Por favor, modifique a string de conexão do banco de dados no arquivo /config/config.toml antes de executá-lo \n você pode acessar /login com o nome de usuário padrão:zhangsan e a senha:123
+ ko: 🎯 알림:실행하기 전에 /config/config.toml 파일에서 데이터베이스 연결 문자열을 수정하세요 \n 기본 사용자 이름:zhangsan 및 비밀번호:123으로 /login에 접속할 수 있습니다
+ no: 🎯 Påminnelse:Vennligst endre databaseforbindelsesstrengen i /config/config.toml-filen før du kjører den \n du kan få tilgang til /login med standard brukernavn:zhangsan og passord:123
+ is: 🎯 Áminning:Vinsamlegast breyttu gagnagrunnstengistrenginu í /config/config.toml skránni áður en þú keyrir það \n þú getur notað /login með sjálfgefna notendanafnið:zhangsan og lykilorðið:123
+ uk: 🎯 Нагадування:Будь ласка, змініть рядок підключення до бази даних у файлі /config/config.toml перед його запуском \n Ви можете отримати доступ до /login за допомогою стандартного імені користувача:zhangsan та пароля:123
+ th: 🎯 แจ้งเตือน:โปรดแก้ไขสตริงการเชื่อมต่อฐานข้อมูลในไฟล์ /config/config.toml ก่อนที่จะทำการรัน \n คุณสามารถเข้าถึง /login ด้วยชื่อผู้ใช้งานเริ่มต้น:zhangsan และรหัสผ่าน:123
+ el: 🎯 Υπενθύμιση:Παρακαλώ τροποποιήστε τη συμβολοσειρά σύνδεσης βάσης δεδομένων στο αρχείο /config/config.toml πριν το τρέξετε \n μπορείτε να προσπελάσετε το /login με το προεπιλεγμένο όνομα χρήστη:zhangsan και τον κωδικό πρόσβασης:123
+ da: 🎯 Påmindelse:Ændr venligst databaseforbindelsesstrengen i /config/config.toml-filen, før du kører den \n du kan få adgang til /login med standard brugernavn:zhangsan og adgangskode:123
+create_success_sqlx_diesel:
+ en: 🎯 Default database created in `/data/test.db`.\n After running it, you can access /login with the default username:zhangsan and password:123
+ zh_CN: 🎯 默认数据库创建在`/data/test.db`。\n 运行后,您可以使用默认用户名:zhangsan和密码:123访问/login
+ zh_TW: 🎯 預設資料庫創建在`/data/test.db`。\n 運行後,您可以使用預設用戶名:zhangsan和密碼:123訪問/login
+ fr: 🎯 Base de données par défaut créée dans `/data/test.db`. \n Après l'avoir exécuté, vous pouvez accéder à /login avec le nom d'utilisateur par défaut:zhangsan et le mot de passe:123
+ ja: 🎯 デフォルトのデータベースが`/data/test.db`に作成されました。\n 実行後、デフォルトのユーザー名:zhangsanとパスワード:123で/loginにアクセスできます
+ es: 🎯 Base de datos predeterminada creada en `/data/test.db`. \n Después de ejecutarlo, puede acceder a /login con el nombre de usuario predeterminado:zhangsan y la contraseña:123
+ de: 🎯 Standarddatenbank erstellt in `/data/test.db`. \n Nach dem Ausführen können Sie mit dem Standardbenutzernamen:zhangsan und dem Passwort:123 auf /login zugreifen.
+ ru: 🎯 База данных по умолчанию создана в `/data/test.db`. \n После запуска вы можете получить доступ к /login с именем пользователя по умолчанию:zhangsan и паролем:123
+ it: 🎯 Database predefinita creata in `/data/test.db`. \n Dopo l'esecuzione, è possibile accedere a /login con l'username predefinito:zhangsan e la password:123
+ pt: 🎯 Banco de dados padrão criado em `/data/test.db`. \n Após executá-lo, você pode acessar /login com o nome de usuário padrão:zhangsan e a senha:123
+ ko: 🎯 기본 데이터베이스가 `/data/test.db`에 생성되었습니다. \n 실행 후 기본 사용자 이름:zhangsan과 비밀번호:123으로 /login에 접속할 수 있습니다.
+ no: 🎯 Standarddatabasen er opprettet i `/data/test.db`. \n Etter å ha kjørt det, kan du få tilgang til /login med standard brukernavn:zhangsan og passord:123
+ is: 🎯 Sjálfgefin gagnagrunn búin til í `/data/test.db`. \n Eftir að hafa keyrt það, getur þú fengið aðgang að /login með sjálfgefnum notandanafni:zhangsan og lykilorði:123
+ uk: 🎯 База даних за замовчуванням створена в `/data/test.db`. \n Після запуску ви можете отримати доступ до /login за допомогою імені користувача за замовчуванням:zhangsan та пароля:123
+ th: 🎯 สร้างฐานข้อมูลเริ่มต้นใน `/data/test.db`. \n หลังจากเรียกใช้งาน คุณสามารถเข้าถึง /login ด้วยชื่อผู้ใช้เริ่มต้น:zhangsan และรหัสผ่าน:123
+ el: 🎯 Δημιουργήθηκε η προεπιλεγμένη βάση δεδομένων στο `/data/test.db`. \n Μετά την εκτέλεσή του, μπορείτε να αποκτήσετε πρόσβαση στο /login με το όνομα χρήστη:zhangsan και τον κωδικό πρόσβασης:123
+ da: 🎯 Standarddatabasen er oprettet i `/data/test.db`. \n Efter at have kørt det, kan du få adgang til /login med standardbrugernavnet:zhangsan og adgangskoden:123
diff --git a/src/i18n.rs b/src/i18n.rs
index c4a9158..36a3a5f 100644
--- a/src/i18n.rs
+++ b/src/i18n.rs
@@ -1,14 +1,25 @@
-use rust_i18n::i18n;
-
-pub fn set_locale() {
- i18n!("locales", fallback = "en");
- match get_language() {
+const SUPPORTED_LANGUAGES: [&str; 17] = [
+ "en", "zh_CN", "zh_TW", "fr", "ja", "es", "de", "ru", "it", "pt", "ko", "no", "is", "uk", "th",
+ "el", "da",
+];
+pub fn set_locale(language: &Option) {
+ match language {
Some(lang) => {
- rust_i18n::set_locale(lang.as_str());
- }
- None => {
- rust_i18n::set_locale("en");
+ let lang = if lang == "zh" { "zh_CN" } else { lang };
+ if SUPPORTED_LANGUAGES.contains(&lang) {
+ rust_i18n::set_locale(lang);
+ } else {
+ rust_i18n::set_locale("en");
+ }
}
+ None => match get_language() {
+ Some(lang) => {
+ rust_i18n::set_locale(lang.as_str());
+ }
+ None => {
+ rust_i18n::set_locale("en");
+ }
+ },
}
}
fn get_language() -> Option {
diff --git a/src/main.rs b/src/main.rs
index 0100c71..756f66b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4,9 +4,9 @@ use clap::Parser;
mod utils;
use i18n::set_locale;
mod i18n;
-rust_i18n::i18n!("locales");
+rust_i18n::i18n!("locales", fallback = "en");
#[derive(Parser, Debug)]
-#[clap(version = "0.0.1", author = "Fankai liu ")]
+#[clap(version = "0.1.19", author = "Fankai liu ")]
struct Opts {
#[clap(subcommand)]
subcmd: SubCommand,
@@ -19,13 +19,15 @@ enum SubCommand {
#[derive(Parser, Debug, Clone)]
pub struct Project {
pub project_name: String,
+ #[clap(short, long)]
+ lang: Option,
}
fn main() -> Result<()> {
- set_locale();
utils::print_logo();
let opts: Opts = Opts::parse();
match opts.subcmd {
SubCommand::New(project) => {
+ set_locale(&project.lang);
match utils::create_project(project) {
Ok(_) => (),
Err(e) => utils::error(e.to_string()),
diff --git a/src/template/src/routers/user.hbs b/src/template/src/routers/user.hbs
index 4144290..5a54a7c 100644
--- a/src/template/src/routers/user.hbs
+++ b/src/template/src/routers/user.hbs
@@ -41,10 +41,10 @@ pub async fn post_login(req: JsonBody, res: &mut Response) {
match result {
Ok(data) => {
let jwt_token = data.token.clone();
- let cookie = Cookie::build("jwt_token", jwt_token)
+ let cookie = Cookie::build(("jwt_token", jwt_token))
.path("/")
.http_only(true)
- .finish();
+ .build();
res.add_cookie(cookie);
}
Err(e) => ErrRes::with_err(&e.to_string()).into_response(res),
@@ -134,10 +134,10 @@ pub async fn post_login(req: JsonBody, res: &mut Response) {
match result {
Ok(data) => {
let jwt_token = data.token.clone();
- let cookie = Cookie::build("jwt_token", jwt_token)
+ let cookie = Cookie::build(("jwt_token", jwt_token))
.path("/")
.http_only(true)
- .finish();
+ .build();
res.add_cookie(cookie);
}
Err(e) => ErrRes::with_err(&e.to_string()).into_response(res),
diff --git a/src/template/src/services/user.hbs b/src/template/src/services/user.hbs
index 4860e36..b1a729f 100644
--- a/src/template/src/services/user.hbs
+++ b/src/template/src/services/user.hbs
@@ -399,15 +399,19 @@ pub async fn login(req: UserLoginRequest) -> AppResult {
pub async fn update_user(req: UserUpdateRequest) -> AppResult {
let db = DB.get().ok_or(anyhow::anyhow!("数据库连接失败"))?;
- let user = Users::select_by_column(db,"id",&req.id).await?;
- if user.len()==0 {
+ let users = Users::select_by_column(db,"id",&req.id).await?;
+ if users.len()==0 {
return Err(anyhow::anyhow!("用户不存在").into());
}
- Users::update_by_column(db,&user[0],"id").await?;
-
+ let user = Users {
+ id: users[0].clone().id,
+ username: users[0].clone().username,
+ password: rand_utils::hash_password(req.password).await?,
+ };
+ Users::update_by_column(db,&user,"id").await?;
Ok(UserResponse {
- id: user[0].id.clone(),
- username: user[0].username.clone(),
+ id: users[0].id.clone(),
+ username: users[0].username.clone(),
})
}
diff --git a/src/utils/create_project.rs b/src/utils/create_project.rs
index af1a340..e57155f 100644
--- a/src/utils/create_project.rs
+++ b/src/utils/create_project.rs
@@ -33,42 +33,58 @@ pub fn create_project(project: Project) -> Result<()> {
let config = get_user_selected()?;
match config {
Some(config) => {
- write_project_file(project_path, config.clone(), project.clone())?;
+ write_project_file(project_path, config, project.clone())?;
init_git(project_path)?;
- success(t!("create_success", project_name = project_name).replace(r"\n", "\n"));
- if config.db_conn_type == DbConnectionType::Sqlx
- || config.db_conn_type == DbConnectionType::SeaOrm
- || config.db_conn_type == DbConnectionType::Diesel
- {
- if config.db_conn_type == DbConnectionType::Sqlx {
- success(
- t!("create_success_sqlx", project_name = project_name).replace(r"\n", "\n"),
- );
- }
- if config.db_conn_type == DbConnectionType::SeaOrm {
- success(
- t!("create_success_sea_orm", project_name = project_name)
- .replace(r"\n", "\n"),
- );
- }
- if config.db_type == DbType::Sqlite {
+ after_print_info(project_name, config);
+ }
+ None => anyhow::bail!("cli quit!"),
+ }
+ Ok(())
+}
+
+fn after_print_info(project_name: &String, config: UserSelected) {
+ success(t!("create_success", project_name = project_name).replace(r"\n", "\n"));
+ match config.db_conn_type {
+ DbConnectionType::Sqlx => {
+ success(t!("create_success_sqlx").replace(r"\n", "\n"));
+ match config.db_type {
+ DbType::Sqlite => {
success(t!("create_success_sqlx_sqlite").replace(r"\n", "\n"));
- } else {
+ }
+ _ => {
success(t!("create_success_mysql_or_pgsql").replace(r"\n", "\n"));
}
}
- match (config.db_conn_type, config.db_type) {
- (DbConnectionType::Rbatis, DbType::Mysql | DbType::Postgres | DbType::Mssql) => {
- success(t!("create_success_rbatis"));
+ }
+ DbConnectionType::SeaOrm => {
+ success(t!("create_success_sea_orm").replace(r"\n", "\n"));
+ match config.db_type {
+ DbType::Sqlite => {
+ success(t!("create_success_sqlx_sqlite").replace(r"\n", "\n"));
+ }
+ _ => {
+ success(t!("create_success_mysql_or_pgsql").replace(r"\n", "\n"));
}
- (_, _) => {}
}
}
- None => anyhow::bail!("cli quit!"),
+ DbConnectionType::Diesel => match config.db_type {
+ DbType::Sqlite => {
+ success(t!("create_success_sqlx_diesel").replace(r"\n", "\n"));
+ }
+ _ => {
+ success(t!("create_success_mysql_or_pgsql").replace(r"\n", "\n"));
+ }
+ },
+ DbConnectionType::Rbatis => match config.db_type {
+ DbType::Mysql | DbType::Postgres | DbType::Mssql => {
+ success(t!("create_success_rbatis").replace(r"\n", "\n"));
+ }
+ _ => {}
+ },
+ _ => {}
}
- Ok(())
}
fn write_project_file(
@@ -96,7 +112,7 @@ fn write_project_file(
"jsonwebtoken": "8.3.0",
"once_cell": "1.18.0",
"salvo": {
- "version": "0.57",
+ "version": "0.58",
"features": ["anyhow", "logging", "cors", "oapi", "jwt-auth", "rustls", "catch-panic","cookie"]
},
"serde": "1.0.188",