Skip to content

Commit e95a198

Browse files
committed
Split command line interfaces and http server.
1 parent a859629 commit e95a198

File tree

6 files changed

+38
-33
lines changed

6 files changed

+38
-33
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to the "Go-Web Framework" will be documented in this file.
44

55
## [Unreleased]
66

7+
## [v0.6-0-beta] - 2021-08-25
8+
### Changed
9+
- Split command line interfaces and http server.
10+
711
## [v0.5-9-beta] - 2021-08-23
812
### Added
913
- Gzip compression over HTTP responses

application.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,24 @@ type BaseEntities struct {
2121
Models register.ModelRegister
2222
}
2323

24-
// Start method will start the main Go-Web HTTP Server.
25-
func Start(args []string, entities BaseEntities) {
26-
c := kernel.BuildCommandContainer()
27-
myFigure := figure.NewFigure("Go-Web", "graffiti", true)
28-
myFigure.Print()
29-
30-
fmt.Println("Go-Web CLI tool - Author: [email protected]")
24+
// Start will run the HTTP web server
25+
func Start(e BaseEntities) {
26+
startup(e)
27+
kernel.RunServer()
28+
}
3129

32-
registerBaseEntities(entities)
30+
// StartCommand method runs specific CLI command
31+
func StartCommand(args []string, e BaseEntities) {
32+
startup(e)
3333

34+
c := kernel.BuildCommandContainer()
3435
cmd := kernel.Commands.List[args[0]]
3536
if cmd == nil {
3637
fmt.Println("Command not found!")
3738
os.Exit(1)
3839
}
3940

4041
rc := reflect.ValueOf(cmd)
41-
// Set args if exists
4242
if len(args) == 2 {
4343
reflect.Indirect(rc).FieldByName("Args").SetString(args[1])
4444
}
@@ -49,9 +49,16 @@ func Start(args []string, entities BaseEntities) {
4949
}
5050
}
5151

52-
// Register base entities in Go-Web kernel
52+
func startup(e BaseEntities) {
53+
myFigure := figure.NewFigure("Go-Web", "graffiti", true)
54+
myFigure.Print()
55+
fmt.Println("Go-Web CLI tool - Author: [email protected]")
56+
RegisterBaseEntities(e)
57+
}
58+
59+
// RegisterBaseEntities base entities in Go-Web kernel
5360
// This method will register: Controllers, Models, CLI commands, Services and middleware
54-
func registerBaseEntities(entities BaseEntities) {
61+
func RegisterBaseEntities(entities BaseEntities) {
5562
kernel.Controllers = entities.Controllers
5663
kernel.Middleware = entities.Middlewares
5764
kernel.Models = entities.Models

cli/autoregister.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
// Handles Go-Web component auto Register
1111
func autoRegister(re *regexp.Regexp, newElement string) {
1212
var elements []string
13-
content, err := ioutil.ReadFile("register.go")
13+
content, err := ioutil.ReadFile("register/register.go")
1414
if err != nil {
1515
log.Fatal(err)
1616
}
@@ -26,7 +26,7 @@ func autoRegister(re *regexp.Regexp, newElement string) {
2626
newString := strings.Join(elements, "")
2727

2828
newContent := strings.Replace(string(content), oldString, newString, 1)
29-
if err := ioutil.WriteFile("register.go", []byte(newContent), 0644); err != nil {
29+
if err := ioutil.WriteFile("register/register.go", []byte(newContent), 0644); err != nil {
3030
log.Fatal(err)
3131
}
3232
}

cli/show_commands.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ package cli
22

33
import (
44
"github.com/RobyFerro/go-web-framework/register"
5+
"github.com/olekukonko/tablewriter"
56
"os"
67
"reflect"
7-
8-
"github.com/olekukonko/tablewriter"
98
)
109

1110
// ShowCommands will show all registered commands

kernel/register.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,17 @@ var (
1212
// Example: './goweb migration:up' will run '&command.MigrationUp{}' command.
1313
Commands = register.CommandRegister{
1414
List: map[string]interface{}{
15-
"database:seed": &cli.Seeder{},
16-
"show:commands": &cli.ShowCommands{},
17-
"server:run": &Run{},
15+
"database:seed": &cli.Seeder{},
16+
"show:commands": &cli.ShowCommands{},
17+
"cmd:create": &cli.CmdCreate{},
18+
"controller:create": &cli.ControllerCreate{},
19+
"generate:key": &cli.GenerateKey{},
20+
"job:create": &cli.JobCreate{},
21+
"middleware:create": &cli.MiddlewareCreate{},
22+
"migration:create": &cli.MigrationCreate{},
23+
"migration:rollback": &cli.MigrateRollback{},
24+
"migration:up": &cli.MigrationUp{},
25+
"model:create": &cli.ModelCreate{},
1826
// Here is where you've to register your custom controller
1927
},
2028
}

kernel/server.go

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,8 @@ import (
99

1010
var appConf Conf
1111

12-
// Run will run Go-Web HTTP server
13-
type Run struct {
14-
Signature string
15-
Description string
16-
Args string
17-
}
18-
19-
// Register this command
20-
func (c *Run) Register() {
21-
c.Signature = "server:run"
22-
c.Description = "Starts Go-Web server"
23-
}
24-
25-
// Run this command
26-
func (c *Run) Run() {
12+
// RunServer this command
13+
func RunServer() {
2714
router := WebRouter()
2815
conf, _ := RetrieveAppConf()
2916
server := GetHttpServer(router, conf)

0 commit comments

Comments
 (0)