installer: orginize bootstrapper, improve service IP handling
diff --git a/core/installer/cmd/app_manager.go b/core/installer/cmd/app_manager.go
index 6027204..a19a9fc 100644
--- a/core/installer/cmd/app_manager.go
+++ b/core/installer/cmd/app_manager.go
@@ -1,17 +1,13 @@
package main
import (
- "net"
"os"
- "github.com/go-git/go-billy/v5/memfs"
- "github.com/go-git/go-git/v5"
- gitssh "github.com/go-git/go-git/v5/plumbing/transport/ssh"
- "github.com/go-git/go-git/v5/storage/memory"
"github.com/spf13/cobra"
"golang.org/x/crypto/ssh"
"github.com/giolekva/pcloud/core/installer"
+ "github.com/giolekva/pcloud/core/installer/soft"
"github.com/giolekva/pcloud/core/installer/welcome"
)
@@ -63,7 +59,11 @@
if err != nil {
return err
}
- repo, err := cloneRepo(appManagerFlags.repoAddr, signer)
+ addr, err := soft.ParseRepositoryAddress(appManagerFlags.repoAddr)
+ if err != nil {
+ return err
+ }
+ repo, err := soft.CloneRepo(addr, signer)
if err != nil {
return err
}
@@ -88,25 +88,3 @@
s.Start()
return nil
}
-
-func cloneRepo(address string, signer ssh.Signer) (*git.Repository, error) {
- return git.Clone(memory.NewStorage(), memfs.New(), &git.CloneOptions{
- URL: address,
- Auth: auth(signer),
- RemoteName: "origin",
- InsecureSkipTLS: true,
- })
-}
-
-func auth(signer ssh.Signer) *gitssh.PublicKeys {
- return &gitssh.PublicKeys{
- Signer: signer,
- HostKeyCallbackHelper: gitssh.HostKeyCallbackHelper{
- HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
- // TODO(giolekva): verify server public key
- // fmt.Printf("## %s || %s -- \n", serverPubKey, ssh.MarshalAuthorizedKey(key))
- return nil
- },
- },
- }
-}