DodoApp: clone with submodules

Change-Id: I82d53cb91e9629cc7735f92608d9b0ddaef9b913
diff --git a/core/installer/soft/client.go b/core/installer/soft/client.go
index 08103be..1c93666 100644
--- a/core/installer/soft/client.go
+++ b/core/installer/soft/client.go
@@ -205,6 +205,7 @@
 		},
 		RemoteName:      "origin",
 		ReferenceName:   "refs/heads/master",
+		SingleBranch:    true,
 		Depth:           1,
 		InsecureSkipTLS: true,
 		Progress:        os.Stdout,
@@ -212,6 +213,22 @@
 	if err != nil && !errors.Is(err, transport.ErrEmptyRemoteRepository) {
 		return nil, err
 	}
+	wt, err := c.Worktree()
+	if err != nil {
+		return nil, err
+	}
+	sb, err := wt.Submodules()
+	if err != nil {
+		return nil, err
+	}
+	if err := sb.Init(); err != nil {
+		return nil, err
+	}
+	if err := sb.Update(&git.SubmoduleUpdateOptions{
+		Depth: 1,
+	}); err != nil {
+		return nil, err
+	}
 	return &Repository{
 		Repository: c,
 		Addr:       addr,