feat: implemented all features besides wireguard

This commit is contained in:
jb
2026-03-11 11:01:35 -03:00
parent 6870144f39
commit 085cda7251
11 changed files with 539 additions and 73 deletions
+57 -6
View File
@@ -1,6 +1,7 @@
package tui
import (
"fmt"
"os/exec"
"time"
@@ -14,11 +15,18 @@ type DockerCheckedMsg struct{ Installed bool }
type DockerInstalledMsg struct{ Err error }
type TickMsg struct{}
// Image downloading
// Image downloading and checking
type ImageCheckMsg struct {
Exists bool
Err error
}
type ImageDownloadFinishedMsg struct {
Err error
Message string
Err error
}
type DownloadTickMsg struct{}
type ConfigFileMsg struct{ Err error }
type DockerRunMsg struct{ Err error }
// --- Commands ---
@@ -29,18 +37,61 @@ func CheckDockerCmd() tea.Cmd {
}
}
func tickCmd() tea.Cmd {
func TickCmd() tea.Cmd {
return tea.Tick(100*time.Millisecond, func(t time.Time) tea.Msg {
return TickMsg{}
})
}
func downloadImageCmd() tea.Cmd {
func DownloadImageCmd(username, password string) tea.Cmd {
return func() tea.Msg {
url := imageName
err := docker.PullImage("hub.davinti.com.br:443/app-dono/app-cliente:latest")
loginOut, err := exec.Command(
"docker", "login", url,
"-u", username,
"-p", password,
).CombinedOutput()
return ImageDownloadFinishedMsg{
if err != nil {
return ImageDownloadFinishedMsg{
Message: string(loginOut),
Err: fmt.Errorf("falha no login: %w", err),
}
}
message, err := PullImage(url)
return ImageDownloadFinishedMsg{Message: message, Err: err}
}
}
func CheckImageCmd(image string) tea.Cmd {
return func() tea.Msg {
cmd := exec.Command("docker", "image", "inspect", image)
err := cmd.Run()
return ImageCheckMsg{
Exists: err == nil,
Err: err,
}
}
}
func GenerateConfigFile(cv ConfigValues, path string) tea.Cmd {
return func() tea.Msg {
err := WriteConfigFile(cv, path)
return ConfigFileMsg{
Err: err,
}
}
}
func RunAppContainer(image, name, filePath, destinationPath string, cv ConfigValues) tea.Cmd {
return func() tea.Msg {
err := RunAppClienteContainer(image, name, filePath, destinationPath, cv)
return DockerRunMsg{
Err: err,
}
}