-
Notifications
You must be signed in to change notification settings - Fork 0
/
http.go
103 lines (88 loc) · 3.52 KB
/
http.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// Copyright © 2017 NAME HERE <EMAIL ADDRESS>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cmd
import (
"fmt"
"os"
"strconv"
"github.com/chrisbenson/epic/pkg/epic"
"github.com/spf13/cobra"
)
// httpCmd represents the http command
var httpCmd = &cobra.Command{
Use: "http",
Short: "A brief description of your command",
Long: `A longer description that spans multiple lines and likely contains examples
and usage of using your command. For example:
Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.`,
Run: func(cmd *cobra.Command, args []string) {
verifyServeHTTPFlags()
portInt, _ := strconv.Atoi(port)
epic.ServeHTTP(portInt, host, epicPassword, server, database)
resetCreds()
},
}
func init() {
serveCmd.AddCommand(httpCmd)
// Here you will define your flags and configuration settings.
// Cobra supports Persistent Flags which will work for this command
// and all subcommands, e.g.:
// httpCmd.PersistentFlags().String("foo", "", "A help for foo")
// Cobra supports local flags which will only run when this command
// is called directly, e.g.:
// httpCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
httpCmd.Flags().StringVarP(&port, "port", "", "", "--port 8080, -n 8080")
httpCmd.Flags().StringVarP(&host, "host", "", "", "--host example.com, -h example.com")
httpCmd.Flags().StringVarP(&epicPassword, "epicPassword", "", "", "--epicPassword password, -e password")
httpCmd.Flags().StringVarP(&server, "server", "", "", "--server server, -s server")
httpCmd.Flags().StringVarP(&database, "database", "", "", "--database database, -d database")
//httpCmd.MarkFlagRequired("port")
//httpCmd.MarkFlagRequired("host")
//httpCmd.MarkFlagRequired("epicPassword")
//httpCmd.MarkFlagRequired("server")
}
func verifyServeHTTPFlags() {
var flagFail bool
if port == "" {
flagFail = true
fmt.Println("The required 'port' flag has not been set. (e.g. --port 8080, -n 8080)")
}
if host == "" {
flagFail = true
fmt.Println("The required 'host' flag has not been set. (e.g. --host example.com, -h example.com)")
}
//if epicUser == "" {
// flagFail = true
// fmt.Println("The required 'epicUser' flag has not been set. (e.g. --epicUser admin, -u admin)")
//}
if epicPassword == "" {
flagFail = true
fmt.Println("The required 'epicPassword' flag has not been set. (e.g. --epicPassword password, -p password)")
}
if server == "" {
flagFail = true
fmt.Println("The required 'server' flag has not been set. (e.g. --server server, -s server)")
}
if database == "" {
flagFail = true
fmt.Println("The required 'database' flag has not been set. (e.g. --database database, -d database)")
}
if flagFail == true {
fmt.Println("Correct usage is like this example: epic serve http --port 8080 --host example.com --epicUser admin --adminPassword password --server server")
fmt.Println("Or this example: epic serve http -n 8080 -h example.com -u admin -p password -s server")
os.Exit(1)
}
}