Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions seva-launcher/seva-compose.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,12 @@ type Containers []struct {

func start_app(command WebSocketCommand) WebSocketCommand {
log.Println("Starting selected app")

cmd := exec.Command(docker_compose, "-p", "seva-launcher", "up", "-d")
if docker_compose == "docker" {
cmd = exec.Command(docker_compose, "compose", "-p", "seva-launcher", "up", "-d")
}

output, err := cmd.CombinedOutput()
if err != nil {
log.Println("Failed to start selected app!")
Expand Down Expand Up @@ -168,7 +173,11 @@ func apply_proxy_settings(proxy_settings ProxySettings) {

func stop_app(command WebSocketCommand) WebSocketCommand {
log.Println("Stopping selected app")

cmd := exec.Command(docker_compose, "-p", "seva-launcher", "down", "--remove-orphans")
if docker_compose == "docker" {
cmd = exec.Command(docker_compose, "compose", "-p", "seva-launcher", "down", "--remove-orphans")
}
output, err := cmd.CombinedOutput()
if err != nil {
log.Println("Failed to stop selected app! (It may not be running!)")
Expand Down Expand Up @@ -226,7 +235,11 @@ func load_app(command WebSocketCommand) WebSocketCommand {
func is_running(command WebSocketCommand) WebSocketCommand {
name := command.Arguments[0]
log.Println("Checking if " + name + " is running")

cmd := exec.Command(docker_compose, "-p", "seva-launcher", "ps", "--format", "json")
if docker_compose == "docker" {
cmd = exec.Command(docker_compose, "compose", "-p", "seva-launcher", "ps", "--format", "json")
}
output, err := cmd.Output()
if err != nil {
log.Println("Failed to check if app is running!")
Expand Down
31 changes: 13 additions & 18 deletions seva-launcher/seva-launcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,20 @@ var content embed.FS
//go:embed docker-compose
var docker_compose_bin []byte

// Checks if docker compose is present in the file-system
func is_docker_compose_installed() bool {
cmd := exec.Command("docker-compose", "-v")
_, err := cmd.CombinedOutput()
if err != nil {
log.Println("Docker-compose is either not installed or cannot be executed")
log.Println(err)
log.Println("Using local install for now")
return false
}
return true
}

func prepare_compose() string {
if !is_docker_compose_installed() {
ioutil.WriteFile("docker-compose", docker_compose_bin, 0755)
return "./docker-compose"
}
return "docker-compose"
// Try V2 first
cmd := exec.Command("docker", "compose", "version")
if err := cmd.Run(); err == nil {
return "docker"
}
// Try V1
cmd = exec.Command("docker-compose", "-v")
if err := cmd.Run(); err == nil {
return "docker-compose"
}
// Neither installed, use bundled binary
ioutil.WriteFile("docker-compose", docker_compose_bin, 0755)
return "./docker-compose"
}

func setup_working_directory() {
Expand Down
Loading