support starting a service

pull/338/head
Jesse Duffield 2 years ago
parent b4509fb45e
commit 2f08e0942a

@ -34,6 +34,7 @@ logs:
commandTemplates:
dockerCompose: docker-compose
restartService: '{{ .DockerCompose }} restart {{ .Service.Name }}'
startService: '{{ .DockerCompose }} start {{ .Service.Name }}'
stopService: '{{ .DockerCompose }} stop {{ .Service.Name }}'
serviceLogs: '{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}'
viewServiceLogs: '{{ .DockerCompose }} logs --follow {{ .Service.Name }}'

@ -56,6 +56,16 @@ func (s *Service) Restart() error {
return s.OSCommand.RunCommand(command)
}
// Restart starts the service
func (s *Service) Start() error {
templateString := s.OSCommand.Config.UserConfig.CommandTemplates.StartService
command := utils.ApplyTemplate(
templateString,
s.DockerCommand.NewCommandObject(CommandObject{Service: s}),
)
return s.OSCommand.RunCommand(command)
}
// Attach attaches to the service
func (s *Service) Attach() (*exec.Cmd, error) {
return s.Container.Attach()

@ -121,6 +121,9 @@ type CommandTemplatesConfig struct {
// .Service.Name }}
RestartService string `yaml:"restartService,omitempty"`
// StartService is just like the above but for starting
StartService string `yaml:"startService,omitempty"`
// DockerCompose is for your docker-compose command. You may want to combine a
// few different docker-compose.yml files together, in which case you can set
// this to "docker-compose -f foo/docker-compose.yml -f
@ -326,6 +329,7 @@ func GetDefaultConfig() UserConfig {
CommandTemplates: CommandTemplatesConfig{
DockerCompose: "docker-compose",
RestartService: "{{ .DockerCompose }} restart {{ .Service.Name }}",
StartService: "{{ .DockerCompose }} start {{ .Service.Name }}",
RebuildService: "{{ .DockerCompose }} up -d --build {{ .Service.Name }}",
RecreateService: "{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}",
StopService: "{{ .DockerCompose }} stop {{ .Service.Name }}",

@ -297,6 +297,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Handler: gui.handleServiceRestart,
Description: gui.Tr.Restart,
},
{
ViewName: "services",
Key: 'S',
Modifier: gocui.ModNone,
Handler: gui.handleServiceStart,
Description: gui.Tr.Start,
},
{
ViewName: "services",
Key: 'a',

@ -251,6 +251,21 @@ func (gui *Gui) handleServiceRestart(g *gocui.Gui, v *gocui.View) error {
})
}
func (gui *Gui) handleServiceStart(g *gocui.Gui, v *gocui.View) error {
service, err := gui.getSelectedService()
if err != nil {
return nil
}
return gui.WithWaitingStatus(gui.Tr.StartingStatus, func() error {
if err := service.Start(); err != nil {
return gui.createErrorPanel(gui.g, err.Error())
}
return nil
})
}
func (gui *Gui) handleServiceAttach(g *gocui.Gui, v *gocui.View) error {
service, err := gui.getSelectedService()
if err != nil {

@ -40,6 +40,7 @@ type TranslationSet struct {
FocusMain string
StopContainer string
RestartingStatus string
StartingStatus string
StoppingStatus string
RemovingStatus string
RunningCustomCommandStatus string
@ -47,6 +48,7 @@ type TranslationSet struct {
RemoveService string
Stop string
Restart string
Start string
Rebuild string
Recreate string
PreviousContext string
@ -108,6 +110,7 @@ func englishSet() TranslationSet {
PruningStatus: "pruning",
RemovingStatus: "removing",
RestartingStatus: "restarting",
StartingStatus: "starting",
StoppingStatus: "stopping",
RunningCustomCommandStatus: "running custom command",
RunningBulkCommandStatus: "running bulk command",
@ -144,6 +147,7 @@ func englishSet() TranslationSet {
RemoveService: "remove containers",
Stop: "stop",
Restart: "restart",
Start: "start",
Rebuild: "rebuild",
Recreate: "recreate",
PreviousContext: "previous tab",

Loading…
Cancel
Save