Skip to content

Commit 02d9237

Browse files
authored
Merge pull request #16 from codacy/fix/only-download-node-once
fix: no longer downloads node binary if it is already present
2 parents f4fd690 + f24dafd commit 02d9237

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

config/node-utils.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"log"
77
"os"
88
"path"
9+
"path/filepath"
910
"runtime"
1011
)
1112

@@ -60,23 +61,30 @@ func getNodeDownloadURL(nodeRuntime *Runtime) string {
6061
func InstallNode(r *Runtime) error {
6162
// TODO should delete downloaded archive
6263
// TODO check for deflated archive
63-
log.Println("Fetching node...")
6464
downloadNodeURL := getNodeDownloadURL(r)
65-
nodeTar, err := utils.DownloadFile(downloadNodeURL, Config.RuntimesDirectory())
66-
if err != nil {
67-
return err
68-
}
69-
70-
// deflate node archive
71-
t, err := os.Open(nodeTar)
65+
fileName := filepath.Base(downloadNodeURL)
66+
t, err := os.Open(filepath.Join(Config.RuntimesDirectory(), fileName))
7267
defer t.Close()
7368
if err != nil {
74-
return err
69+
log.Println("Node is not present, fetching node...")
70+
nodeTar, err := utils.DownloadFile(downloadNodeURL, Config.RuntimesDirectory())
71+
if err != nil {
72+
return err
73+
}
74+
t, err = os.Open(nodeTar)
75+
defer t.Close()
76+
if err != nil {
77+
return err
78+
}
79+
} else {
80+
fmt.Println("Node is already present...")
7581
}
82+
fmt.Println("Extracting node...")
83+
// deflate node archive
84+
7685
err = utils.ExtractTarGz(t, Config.RuntimesDirectory())
7786
if err != nil {
7887
return err
7988
}
80-
8189
return nil
8290
}

0 commit comments

Comments
 (0)