48 lines
829 B
Go
48 lines
829 B
Go
package tui
|
|
|
|
import (
|
|
"os/exec"
|
|
"time"
|
|
|
|
tea "charm.land/bubbletea/v2"
|
|
)
|
|
|
|
// --- Messages ---
|
|
|
|
// Docker installation check
|
|
type DockerCheckedMsg struct{ Installed bool }
|
|
type DockerInstalledMsg struct{ Err error }
|
|
type TickMsg struct{}
|
|
|
|
// Image downloading
|
|
type ImageDownloadFinishedMsg struct {
|
|
Err error
|
|
}
|
|
type DownloadTickMsg struct{}
|
|
|
|
// --- Commands ---
|
|
|
|
func CheckDockerCmd() tea.Cmd {
|
|
return func() tea.Msg {
|
|
_, err := exec.LookPath("docker")
|
|
return DockerCheckedMsg{Installed: err == nil}
|
|
}
|
|
}
|
|
|
|
func tickCmd() tea.Cmd {
|
|
return tea.Tick(100*time.Millisecond, func(t time.Time) tea.Msg {
|
|
return TickMsg{}
|
|
})
|
|
}
|
|
|
|
func downloadImageCmd() tea.Cmd {
|
|
return func() tea.Msg {
|
|
|
|
err := docker.PullImage("hub.davinti.com.br:443/app-dono/app-cliente:latest")
|
|
|
|
return ImageDownloadFinishedMsg{
|
|
Err: err,
|
|
}
|
|
}
|
|
}
|