From 32e146ea295c7429eefcad3a7042360083f2cd7c Mon Sep 17 00:00:00 2001 From: cp20 <47262658+cp-20@users.noreply.github.com> Date: Fri, 31 Jan 2025 16:08:53 +0900 Subject: [PATCH] feat(cli): organized CLI (#50) --- README.md | 30 +++++++++++++++--------------- cli/{ => isuc}/analyzer.go | 5 +++-- cli/{ => isuc}/extractor.go | 1 + cli/{ => isuc}/generator.go | 1 + cli/{ => isuc}/main.go | 0 5 files changed, 20 insertions(+), 17 deletions(-) rename cli/{ => isuc}/analyzer.go (93%) rename cli/{ => isuc}/extractor.go (97%) rename cli/{ => isuc}/generator.go (95%) rename cli/{ => isuc}/main.go (100%) diff --git a/README.md b/README.md index e8cad68..490d20c 100644 --- a/README.md +++ b/README.md @@ -7,23 +7,28 @@ ## How to use -1. Extract the queries [statically](#static-extractor) or [dynamically](#dynamic-extractor) -2. [Get your table schema](#getting-table-schemas) -3. [Generate cache plan](#generate-cache-plan) -4. [Generate the driver](#generate-the-driver) -5. [Switch the driver](#switch-the-driver) +1. [Install isuc CLI](#install-isuc-cli) +2. Extract the queries [statically](#static-extractor) or [dynamically](#dynamic-extractor) +3. [Get your table schema](#getting-table-schemas) +4. [Generate cache plan](#generate-cache-plan) +5. [Generate the driver](#generate-the-driver) +6. [Switch the driver](#switch-the-driver) + +### Install isuc CLI + +```sh +go install github.com/traP-jp/isuc/cli/isuc@latest +``` ### Extractor #### Static Extractor - - - `--out` represents the destination file of the extracted queries. - Set to `extracted.sql` by default ```sh -go run cli/*.go extract --out extracted.sql /path/to/your/codebase/dir +isuc extract --out extracted.sql /path/to/your/codebase/dir ``` #### Dynamic Extractor @@ -63,10 +68,8 @@ mysql -u "$USER" -p"$PASSWORD" -h "$HOST" -N -e "SHOW TABLES FROM $DATABASE" | w ### Generate Cache Plan - - ```sh -go run cli/*.go analyze --sql extracted.sql --schema schema.sql --out isuc.yaml +isuc analyze --sql extracted.sql --schema schema.sql --out isuc.yaml ``` - `--sql` represents extracted queries (via the static/dynamic extractor) @@ -78,10 +81,8 @@ go run cli/*.go analyze --sql extracted.sql --schema schema.sql --out isuc.yaml ### Generate the driver - - ```sh -go run cli/*.go generate --plan isuc.yaml --schema schema.sql +isuc generate --plan isuc.yaml --schema schema.sql ``` - `--plan` represents generated cache plan @@ -101,7 +102,6 @@ Rewrite the section of connecting to a database. ## Appendix - ### Cache Plan Format ```ts diff --git a/cli/analyzer.go b/cli/isuc/analyzer.go similarity index 93% rename from cli/analyzer.go rename to cli/isuc/analyzer.go index a5d7aab..6012c45 100644 --- a/cli/analyzer.go +++ b/cli/isuc/analyzer.go @@ -13,8 +13,9 @@ import ( ) var analyzeCmd = &cobra.Command{ - Use: "analyze", - Long: "Analyze the extracted queries and generate a cache plan", + Use: "analyze", + Short: "Analyze the extracted queries and generate a cache plan", + Long: "Analyze the extracted queries and generate a cache plan", RunE: func(cmd *cobra.Command, args []string) error { sqlFile := cmd.Flag("sql").Value.String() schemasFile := cmd.Flag("schema").Value.String() diff --git a/cli/extractor.go b/cli/isuc/extractor.go similarity index 97% rename from cli/extractor.go rename to cli/isuc/extractor.go index dd398c6..febbb4c 100644 --- a/cli/extractor.go +++ b/cli/isuc/extractor.go @@ -10,6 +10,7 @@ import ( var extractCmd = &cobra.Command{ Use: "extract", + Short: "Extract SQL queries from the codebase", Long: "Statistically analyze the codebase and extract SQL queries", Args: cobra.ExactArgs(1), ValidArgs: []string{"path"}, diff --git a/cli/generator.go b/cli/isuc/generator.go similarity index 95% rename from cli/generator.go rename to cli/isuc/generator.go index 13577f8..28bfd34 100644 --- a/cli/generator.go +++ b/cli/isuc/generator.go @@ -10,6 +10,7 @@ import ( var generateCmd = &cobra.Command{ Use: "generate", + Short: "Generate a driver from the cache plan and table schema", Long: "Generate a driver from the cache plan and table schema", Args: cobra.ExactArgs(1), ValidArgs: []string{"path"}, diff --git a/cli/main.go b/cli/isuc/main.go similarity index 100% rename from cli/main.go rename to cli/isuc/main.go