feat: implemented all features besides wireguard
This commit is contained in:
+57
-6
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user