Skip to content

Commit bfa1187

Browse files
committed
also generate service file content when generate start web
1 parent b717696 commit bfa1187

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

cmd/gen_start_web.go

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/bcdevtools/node-management/validation"
99
"github.com/pkg/errors"
1010
"github.com/spf13/cobra"
11+
"os/user"
1112
"regexp"
1213
"strings"
1314
)
@@ -220,8 +221,6 @@ func GetGenStartWebCmd() *cobra.Command {
220221

221222
var sb strings.Builder
222223
{
223-
sb.WriteString(constants.BINARY_NAME)
224-
sb.WriteString(" ")
225224
sb.WriteString(cmdStartWeb)
226225
sb.WriteString(" ")
227226
sb.WriteString(nodeHomeDirectory)
@@ -324,7 +323,56 @@ func GetGenStartWebCmd() *cobra.Command {
324323
fmt.Println()
325324
fmt.Println("Generated command:")
326325
fmt.Println()
326+
fmt.Print(constants.BINARY_NAME, " ")
327327
fmt.Println(sb.String())
328+
329+
currentUser, err := user.Current()
330+
if err != nil {
331+
utils.ExitWithErrorMsg("ERR: failed to get current user")
332+
return
333+
}
334+
appBinaryPath, ec := utils.LaunchAppAndGetOutput("which", []string{constants.BINARY_NAME})
335+
appBinaryPath = strings.TrimSpace(appBinaryPath)
336+
if ec != 0 || appBinaryPath == "" {
337+
appBinaryPath = constants.BINARY_NAME
338+
}
339+
340+
fmt.Println()
341+
regexNonAlphanumeric := regexp.MustCompile(`[^a-zA-Z\d]`)
342+
serviceFileName := strings.ToLower(
343+
fmt.Sprintf("%s.%s.service",
344+
regexNonAlphanumeric.ReplaceAllString(brand, "-"),
345+
regexNonAlphanumeric.ReplaceAllString(chainName, "-"),
346+
),
347+
)
348+
{
349+
fmt.Println("Service file:")
350+
fmt.Println(fmt.Sprintf("sudo vi /etc/systemd/system/%s", serviceFileName))
351+
}
352+
fmt.Println()
353+
{
354+
fmt.Println(fmt.Sprintf(`[Unit]
355+
Description=%s on %s
356+
After=network.target
357+
#
358+
[Service]
359+
Restart=always
360+
RestartSec=10
361+
User=%s
362+
ExecStart=%s %s
363+
Restart=on-failure
364+
LimitNOFILE=65535
365+
#
366+
[Install]
367+
WantedBy=multi-user.target`,
368+
chainName, brand, currentUser, appBinaryPath, sb.String()),
369+
)
370+
}
371+
{
372+
fmt.Println()
373+
fmt.Println("sudo systemctl enable", serviceFileName)
374+
fmt.Println("sudo systemctl restart", serviceFileName)
375+
}
328376
},
329377
}
330378

0 commit comments

Comments
 (0)