installer: orginize bootstrapper, improve service IP handling
diff --git a/core/installer/repoio.go b/core/installer/repoio.go
index ec7981c..41c479f 100644
--- a/core/installer/repoio.go
+++ b/core/installer/repoio.go
@@ -7,6 +7,7 @@
"io/fs"
"io/ioutil"
"net"
+ "net/netip"
"path"
"path/filepath"
"time"
@@ -17,9 +18,12 @@
gitssh "github.com/go-git/go-git/v5/plumbing/transport/ssh"
"golang.org/x/crypto/ssh"
"sigs.k8s.io/yaml"
+
+ "github.com/giolekva/pcloud/core/installer/soft"
)
type RepoIO interface {
+ Addr() netip.AddrPort
Fetch() error
ReadConfig() (Config, error)
ReadAppConfig(path string) (AppConfig, error)
@@ -39,17 +43,21 @@
}
type repoIO struct {
- repo *git.Repository
+ repo *soft.Repository
signer ssh.Signer
}
-func NewRepoIO(repo *git.Repository, signer ssh.Signer) RepoIO {
+func NewRepoIO(repo *soft.Repository, signer ssh.Signer) RepoIO {
return &repoIO{
repo,
signer,
}
}
+func (r *repoIO) Addr() netip.AddrPort {
+ return r.repo.Addr.Addr
+}
+
func (r *repoIO) Fetch() error {
err := r.repo.Fetch(&git.FetchOptions{
RemoteName: "origin",