diff --git a/controller/tmux.go b/controller/tmux.go index d4104cd..cc2b8f0 100644 --- a/controller/tmux.go +++ b/controller/tmux.go @@ -217,3 +217,12 @@ func createWindow(config *projectconfig.Configuration, sessionName string, index return nil } + +func KillTmuxSession(sessionName string) error { + killSessionCmd := exec.Command("tmux", "kill-session", "-t", sessionName) + if err := killSessionCmd.Run(); err != nil { + return err + } + log.Debug("Ran command", "command", killSessionCmd.String()) + return nil +} diff --git a/project-manager/main.go b/project-manager/main.go index c04be63..a9e5d2b 100644 --- a/project-manager/main.go +++ b/project-manager/main.go @@ -16,6 +16,24 @@ var RootCmd = &cobra.Command{ }, } +var KillTmuxSessionCmd = &cobra.Command{ + Use: "kill", + Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + sessionName := args[0] + err := controller.KillTmuxSession(sessionName) + if err != nil { + log.Error(err) + return + } + log.Debug("Killed tmux session", "name", sessionName) + }, +} + +func init() { + RootCmd.AddCommand(KillTmuxSessionCmd) +} + func ExecuteProjectEnv(projectName string) { config, err := projectconfig.GetProjectConfig(projectName) if err != nil {