refactor: split apps

上级 1373ae52
......@@ -3,7 +3,10 @@ package app
import (
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis/goapp"
"github.com/phodal/coca/pkg/application/analysis/javaapp"
"github.com/phodal/coca/pkg/appliction/analysis"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/spf13/cobra"
)
......@@ -25,8 +28,9 @@ var analysisCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
var outputName string
var ds []core_domain.CodeDataStruct
ds = AnalysisJava()
outputName = "deps.json"
ds = analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(goapp.GoIdentApp), cocafile.GoFileFilter, true)
outputName = "godeps.json"
cModel, _ := json.MarshalIndent(ds, "", "\t")
cmd_util.WriteToCocaFile(outputName, string(cModel))
......
package app
import (
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis/pyapp"
"github.com/phodal/coca/pkg/appliction/analysis"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/spf13/cobra"
)
type AnalysisCmdConfig struct {
Path string
ForceUpdate bool
Lang string
}
var (
analysisCmdConfig AnalysisCmdConfig
)
var analysisCmd = &cobra.Command{
Use: "analysis",
Short: "analysis code",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
var outputName string
var ds []core_domain.CodeDataStruct
ds = analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(pyapp.PythonIdentApp), cocafile.GoFileFilter, true)
outputName = "pydeps.json"
cModel, _ := json.MarshalIndent(ds, "", "\t")
cmd_util.WriteToCocaFile(outputName, string(cModel))
},
}
func init() {
rootCmd.AddCommand(analysisCmd)
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Path, "path", "p", ".", "example -p core/main")
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Lang, "lang", "l", "java", "example coca analysis -l java, typescript, python")
analysisCmd.PersistentFlags().BoolVarP(&analysisCmdConfig.ForceUpdate, "force", "f", false, "force update -f")
}
package app
import (
"github.com/spf13/cobra"
"io"
)
var (
output io.Writer
rootCmd = &cobra.Command{
Use: "coa",
Short: "A generator for Cobra based Applications",
Long: `coa`,
}
)
func NewRootCmd(out io.Writer) *cobra.Command {
output = out
rootCmd.SetOut(out)
return rootCmd
}
package main
import (
"github.com/phodal/coca/analysis/python/app"
"os"
)
func main() {
output := os.Stdout
rootCmd := app.NewRootCmd(output)
_ = rootCmd.Execute()
}
package app
import (
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis/tsapp"
"github.com/phodal/coca/pkg/appliction/analysis"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/spf13/cobra"
)
type AnalysisCmdConfig struct {
Path string
ForceUpdate bool
Lang string
}
var (
analysisCmdConfig AnalysisCmdConfig
)
var analysisCmd = &cobra.Command{
Use: "analysis",
Short: "analysis code",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
var outputName string
var ds []core_domain.CodeDataStruct
ds = analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(tsapp.TypeScriptIdentApp), cocafile.GoFileFilter, true)
outputName = "pydeps.json"
cModel, _ := json.MarshalIndent(ds, "", "\t")
cmd_util.WriteToCocaFile(outputName, string(cModel))
},
}
func init() {
rootCmd.AddCommand(analysisCmd)
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Path, "path", "p", ".", "example -p core/main")
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Lang, "lang", "l", "java", "example coca analysis -l java, typescript, python")
analysisCmd.PersistentFlags().BoolVarP(&analysisCmdConfig.ForceUpdate, "force", "f", false, "force update -f")
}
package app
import (
"github.com/spf13/cobra"
"io"
)
var (
output io.Writer
rootCmd = &cobra.Command{
Use: "coa",
Short: "A generator for Cobra based Applications",
Long: `coa`,
}
)
func NewRootCmd(out io.Writer) *cobra.Command {
output = out
rootCmd.SetOut(out)
return rootCmd
}
package main
import (
"github.com/phodal/coca/analysis/typescript/app"
"os"
)
func main() {
output := os.Stdout
rootCmd := app.NewRootCmd(output)
_ = rootCmd.Execute()
}
......@@ -12,7 +12,6 @@ import (
type AnalysisCmdConfig struct {
Path string
UpdateIdentify bool
Lang string
}
var (
......@@ -26,37 +25,14 @@ var analysisCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
var outputName string
var ds []core_domain.CodeDataStruct
switch analysisCmdConfig.Lang {
//case "go":
// ds = AnalysisGo()
// outputName = "godeps.json"
//case "py", "python":
// ds = AnalysisPython()
// outputName = "pydeps.json"
//case "ts", "typescript":
// ds = AnalysisTypeScript()
// outputName = "tsdeps.json"
default:
ds = AnalysisJava()
outputName = "deps.json"
}
ds = AnalysisJava()
outputName = "deps.json"
cModel, _ := json.MarshalIndent(ds, "", "\t")
cmd_util.WriteToCocaFile(outputName, string(cModel))
},
}
//
//func AnalysisTypeScript() []core_domain.CodeDataStruct {
// return analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(tsapp.TypeScriptIdentApp), cocafile.TypeScriptFileFilter, true)
//}
//
//func AnalysisPython() []core_domain.CodeDataStruct {
// return analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(pyapp.PythonIdentApp), cocafile.PythonFileFilter, true)
//}
//
//func AnalysisGo() []core_domain.CodeDataStruct {
// return analysis.CommonAnalysis(output, analysisCmdConfig.Path, new(goapp.GoIdentApp), cocafile.GoFileFilter, true)
//}
func AnalysisJava() []core_domain.CodeDataStruct {
importPath := analysisCmdConfig.Path
......@@ -84,6 +60,6 @@ func init() {
rootCmd.AddCommand(analysisCmd)
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Path, "path", "p", ".", "example -p core/main")
analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Lang, "lang", "l", "java", "example coca analysis -l java, typescript, python")
//analysisCmd.PersistentFlags().StringVarP(&analysisCmdConfig.Lang, "lang", "l", "java", "example coca analysis -l java, typescript, python")
analysisCmd.PersistentFlags().BoolVarP(&analysisCmdConfig.UpdateIdentify, "identify", "i", true, "use current identify")
}
......@@ -5,35 +5,13 @@ import (
"testing"
)
func Test_Analysis_Go(t *testing.T) {
func Test_Analysis_Java(t *testing.T) {
path := "config"
analysis := []testcase.CmdTestCase{{
Name: "analysis",
Cmd: "analysis -l go -p " + path,
Golden: "testdata/analysis_go.txt",
}}
RunTestCmd(t, analysis)
}
func Test_Analysis_Python(t *testing.T) {
path := "../_fixtures/grammar/python"
analysis := []testcase.CmdTestCase{{
Name: "analysis",
Cmd: "analysis -l py -p " + path,
Golden: "testdata/analysis_python.txt",
}}
RunTestCmd(t, analysis)
}
func Test_Analysis_TypeScript(t *testing.T) {
path := "../_fixtures/grammar/typescript"
analysis := []testcase.CmdTestCase{{
Name: "analysis",
Cmd: "analysis -l ts -p " + path,
Golden: "testdata/analysis_typescript.txt",
Cmd: "analysis -p " + path,
Golden: "testdata/analysis_java.txt",
}}
RunTestCmd(t, analysis)
}
......@@ -10,7 +10,7 @@ func TestApi(t *testing.T) {
analysis := []testcase.CmdTestCase{{
Name: "analysis",
Cmd: "analysis -l java -p " + path,
Cmd: "analysis -p " + path,
Golden: "",
}}
RunTestCmd(t, analysis)
......
Process file: config/cmd_config.go
Process file: ../_fixtures/grammar/python/blog_entity.py
Process file: ../_fixtures/grammar/typescript/Class.ts
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册