Skip to content

Commit 05be9ce

Browse files
author
Raul Melo
committed
Add releaser metadata and update package.json template
1 parent d24514e commit 05be9ce

1 file changed

Lines changed: 59 additions & 12 deletions

File tree

scripts/npm.go

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"bytes"
5+
"encoding/json"
56
"fmt"
67
"os"
78
"path/filepath"
@@ -10,28 +11,35 @@ import (
1011
)
1112

1213
func main() {
13-
outdir, err := getDistFolderPath()
14+
outDir, err := getDistFolderPath()
1415

1516
if err != nil {
1617
fmt.Println("[ERROR] [getDistFolderPath] ", err)
1718
return
1819
}
1920

20-
err = createDistFolder(outdir)
21+
meta, err := getReleaserMetaData()
22+
23+
if err != nil {
24+
fmt.Println("[ERROR] [getReleaserMetaData] ", err)
25+
return
26+
}
27+
28+
err = createDistFolder(outDir)
2129

2230
if err != nil {
2331
fmt.Println("[ERROR] [createDistFolder] ", err)
2432
return
2533
}
2634

27-
pkgString, err := getPackageJsonString()
35+
pkgString, err := getPackageJsonString(*meta)
2836

2937
if err != nil {
3038
fmt.Println("[ERROR] [getPackageJsonString] ", err)
3139
return
3240
}
3341

34-
err = writePackageJson(outdir, pkgString)
42+
err = writePackageJson(outDir, pkgString)
3543

3644
if err != nil {
3745
fmt.Println("[ERROR] [writePackageJson] ", err)
@@ -41,11 +49,6 @@ func main() {
4149
fmt.Println("package.json created")
4250
}
4351

44-
type Foo struct {
45-
Version string
46-
URL string
47-
}
48-
4952
func getDistFolderPath() (string, error) {
5053
fullPath, err := filepath.Abs("./")
5154

@@ -70,7 +73,12 @@ func createDistFolder(distPath string) error {
7073
return nil
7174
}
7275

73-
func getPackageJsonString() (string, error) {
76+
type PkgJsonTemplate struct {
77+
Version string
78+
URL string
79+
}
80+
81+
func getPackageJsonString(meta ReleaserMetaData) (string, error) {
7482
temp, err := template.ParseFiles("./scripts/templates/package.json")
7583

7684
if err != nil {
@@ -79,8 +87,9 @@ func getPackageJsonString() (string, error) {
7987

8088
var buff bytes.Buffer
8189

82-
temp.Execute(&buff, Foo{Version: "2.0.0",
83-
URL: `https://github.com/raulfdm/node-versions-cli/releases/download/v{{version}}/myGoPackage_{{version}}_{{platform}}_{{arch}}.tar.gz`,
90+
temp.Execute(&buff, PkgJsonTemplate{
91+
Version: meta.GetVersion(),
92+
URL: fmt.Sprintf("https://github.com/raulfdm/node-versions-cli/releases/download/v{{version}}/%s_{{version}}_{{platform}}_{{arch}}.tar.gz", meta.ProjectName),
8493
})
8594

8695
result := buff.String()
@@ -104,3 +113,41 @@ func writePackageJson(distPath string, pkgString string) error {
104113

105114
return nil
106115
}
116+
117+
type ReleaserMetaData struct {
118+
Tag string `json:"tag"`
119+
ProjectName string `json:"project_name"`
120+
}
121+
122+
func (r *ReleaserMetaData) GetVersion() string {
123+
// remove v prefix
124+
return r.Tag[1:]
125+
}
126+
127+
func getReleaserMetaData() (*ReleaserMetaData, error) {
128+
fullPath, err := filepath.Abs("./")
129+
130+
if err != nil {
131+
return nil, err
132+
}
133+
134+
releaserMetaPath := filepath.Join(fullPath, "dist/metadata.json")
135+
136+
file, err := os.Open(releaserMetaPath)
137+
138+
if err != nil {
139+
return nil, err
140+
}
141+
142+
defer file.Close()
143+
144+
var meta ReleaserMetaData
145+
146+
err = json.NewDecoder(file).Decode(&meta)
147+
148+
if err != nil {
149+
return nil, err
150+
}
151+
152+
return &meta, nil
153+
}

0 commit comments

Comments
 (0)