diff --git a/command/bash.go b/command/bash.go new file mode 100644 index 0000000..c0b0688 --- /dev/null +++ b/command/bash.go @@ -0,0 +1,54 @@ +package command + +import ( + "github.com/pterm/pterm" + "github.com/spf13/cobra" + "github.com/varrcan/dl/project" + "os" + "os/exec" +) + +func init() { + rootCmd.AddCommand(bashCmd) + bashCmd.Flags().BoolVarP(&bashRoot, "root", "r", false, "Login as root") +} + +var bashCmd = &cobra.Command{ + Use: "bash", + Short: "Login to PHP container", + Long: `Login to PHP container as www-data user and start bash shell.`, + Run: func(cmd *cobra.Command, args []string) { + bash() + }, +} + +var bashRoot bool + +func bash() { + project.LoadEnv() + + bash, lookErr := exec.LookPath("bash") + docker, lookErr := exec.LookPath("docker") + if lookErr != nil { + pterm.FgRed.Println(lookErr) + return + } + + site := project.Env.GetString("APP_NAME") + container := site + "_php" + var root string + + if bashRoot == true { + root = "--user root " + } + + cmdCompose := &exec.Cmd{ + Path: bash, + Args: []string{bash, "-c", docker + " exec -it " + root + container + " /bin/bash"}, + Stdout: os.Stdout, + Stderr: os.Stderr, + Stdin: os.Stdin, + } + + _ = cmdCompose.Run() +}