github.com/sapplications/sb@v0.0.0-20240116135441-1a13cafe3497/cmd/suite_test.go (about) 1 package cmd 2 3 import ( 4 "os" 5 "strings" 6 "testing" 7 8 "github.com/hashicorp/go-plugin" 9 "github.com/sapplications/dl" 10 "github.com/sapplications/sb" 11 "github.com/sapplications/sb/plugins" 12 "gopkg.in/check.v1" 13 ) 14 15 func Test(t *testing.T) { 16 check.TestingT(t) 17 } 18 19 func setCmd(cmd string, args ...string) { 20 os.Args = os.Args[:1] 21 os.Args = append(os.Args, cmd) 22 if len(args) > 0 { 23 os.Args = append(os.Args, args...) 24 } 25 } 26 27 type CmdSuite struct { 28 cmd SmartBuilder 29 } 30 31 var _ = check.Suite(&CmdSuite{}) 32 33 func (s *CmdSuite) SetUpTest(c *check.C) { 34 sc := sb.SmartCreator{} 35 manager := &smoduleManager{} 36 manager.Kind = sb.ModKind.SA 37 sc.ModManager = manager 38 39 sb := appSmartBuilder{} 40 sb.Builder = &plugins.BuilderPlugin{} 41 manager = &smoduleManager{} 42 manager.Kind = "sb" 43 sb.ModManager = manager 44 sb.PluginHandshake = plugin.HandshakeConfig{ 45 ProtocolVersion: 1, 46 MagicCookieKey: "SMART_PLUGIN", 47 MagicCookieValue: "sbuilder", 48 } 49 50 s.cmd = SmartBuilder{} 51 // s.cmd.SilentErrors = true 52 53 // s.cmd.ModManager = CmdManager{} 54 // s.cmd.ModManager.Use = "mod" 55 // s.cmd.ModManager.ModManager = &sb 56 57 // s.cmd.Creator = CmdCreator{} 58 // s.cmd.Creator.Use = "new" 59 // s.cmd.Creator.Creator = &sc 60 61 // s.cmd.Coder = CmdCoder{} 62 // s.cmd.Coder.Use = "code" 63 // s.cmd.Coder.Coder = &sb 64 65 // s.cmd.Builder = CmdBuilder{} 66 // s.cmd.Builder.Use = "build" 67 // s.cmd.Builder.Builder = &sb 68 69 // s.cmd.Cleaner = CmdCleaner{} 70 // s.cmd.Cleaner.Use = "clean" 71 // s.cmd.Cleaner.Cleaner = &sb 72 73 // s.cmd.ModAdder = CmdModAdder{} 74 // s.cmd.ModAdder.Use = "add" 75 // s.cmd.ModAdder.ModManager = &sb 76 77 // s.cmd.ModDeler = CmdModDeler{} 78 // s.cmd.ModDeler.Use = "del" 79 // s.cmd.ModDeler.ModManager = &sb 80 81 // s.cmd.ModIniter = CmdModIniter{} 82 // s.cmd.ModIniter.Use = "init" 83 // s.cmd.ModIniter.ModManager = &sb 84 85 // s.cmd.Starter.SilenceErrors = true 86 } 87 88 func (s *CmdSuite) Mod(args ...string) error { 89 setCmd("mod", args...) 90 return s.cmd.Execute() 91 } 92 93 func (s *CmdSuite) New(args ...string) error { 94 setCmd("new", args...) 95 return s.cmd.Execute() 96 } 97 98 func (s *CmdSuite) Code(args ...string) error { 99 setCmd("code", args...) 100 return s.cmd.Execute() 101 } 102 103 func (s *CmdSuite) Build(args ...string) error { 104 setCmd("build", args...) 105 return s.cmd.Execute() 106 } 107 108 func (s *CmdSuite) Clean(args ...string) error { 109 setCmd("clean", args...) 110 return s.cmd.Execute() 111 } 112 113 func getModuleFileName(name string) string { 114 moduleExt := ".sb" 115 if strings.HasSuffix(name, moduleExt) { 116 return name 117 } else { 118 return name + moduleExt 119 } 120 } 121 122 func isItemExists(kind, item string) (found bool) { 123 m := dl.Manager{} 124 m.Kind = kind 125 all, err := m.ReadAll() 126 if err != nil { 127 return false 128 } 129 _, found = all.Items()[item] 130 return 131 } 132 133 func isModuleExists(name string) bool { 134 _, err := os.Stat(getModuleFileName(name)) 135 return err == nil 136 }