Skip to content

Commit 11264db

Browse files
committed
πŸ“¦ create release v0.0.1
1 parent 6b17191 commit 11264db

File tree

9 files changed

+124
-3
lines changed

9 files changed

+124
-3
lines changed

β€Ž.DS_Storeβ€Ž

8 KB
Binary file not shown.

β€ŽREADME.mdβ€Ž

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ snippets generate \
1212
--output ../.vscode/js.code-snippets
1313
```
1414

15+
You can download a remote yaml file:
16+
```bash
17+
snippets generate \
18+
--url https://raw.githubusercontent.com/bots-garden/golab-demos/main/snippets-demo/messages.yml \
19+
--input samples/messages.yml \
20+
--output ../.vscode/messages.code-snippets
21+
```
22+
> if you need to use authentication header (ex: `"PRIVATE-TOKEN: mytokenvalue"
23+
`), use the following flags:
24+
> ```bash
25+
> --auth-header-name PRIVATE-TOKEN
26+
> --auth-header-value mytokenvalue
27+
> ```
28+
1529
### Input `yaml` file (example)
1630
1731
```yaml

β€Žgo.modβ€Ž

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
module snippet
22

33
go 1.21.1
4+
5+
require github.com/go-resty/resty/v2 v2.9.1
6+
7+
require golang.org/x/net v0.15.0 // indirect

β€Žgo.sumβ€Ž

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
github.com/go-resty/resty/v2 v2.9.1 h1:PIgGx4VrHvag0juCJ4dDv3MiFRlDmP0vicBucwf+gLM=
2+
github.com/go-resty/resty/v2 v2.9.1/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4=
3+
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
4+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
5+
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
6+
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
7+
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
8+
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
9+
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
10+
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
11+
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
12+
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
13+
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
14+
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
15+
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
16+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
17+
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
18+
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
19+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
20+
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
21+
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
22+
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
23+
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
24+
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
25+
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
26+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
27+
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
28+
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
29+
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
30+
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
31+
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
32+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
33+
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
34+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
35+
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
36+
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
37+
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
38+
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
39+
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
40+
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
41+
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
42+
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
43+
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

β€Žmain.goβ€Ž

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ package main
22

33
import (
44
"encoding/json"
5+
"errors"
56
"flag"
67
"fmt"
78
"os"
89
"strings"
910

1011
_ "embed"
1112

13+
"github.com/go-resty/resty/v2"
1214
"gopkg.in/yaml.v3"
1315
)
1416

@@ -85,6 +87,29 @@ func writeJsonFile(jsonFilePath string, jsonData []byte) error {
8587
return nil
8688
}
8789

90+
func downloadYamlFile(yamlFileUrl, authHeaderName, authHeaderValue, saveFilePath string) error {
91+
// authenticationHeader:
92+
// Example: "PRIVATE-TOKEN: ${GITLAB_WASM_TOKEN}"
93+
client := resty.New()
94+
95+
if authHeaderName != "" {
96+
client.SetHeader(authHeaderName, authHeaderValue)
97+
}
98+
99+
resp, err := client.R().
100+
SetOutput(saveFilePath).
101+
Get(yamlFileUrl)
102+
103+
if resp.IsError() {
104+
return errors.New("error while downloading the yaml file")
105+
}
106+
107+
if err != nil {
108+
return err
109+
}
110+
return nil
111+
}
112+
88113
func parse(command string, args []string) error {
89114
switch command {
90115

@@ -95,8 +120,21 @@ func parse(command string, args []string) error {
95120
input := flagSet.String("input", "", "input yaml file path")
96121
output := flagSet.String("output", "", "output json file path")
97122

123+
yamFileUrl := flagSet.String("url", "", "Url to download the yaml file")
124+
authHeaderName := flagSet.String("auth-header-name", "", "Authentication header name, ex: PRIVATE-TOKEN")
125+
authHeaderValue := flagSet.String("auth-header-value", "", "Value of the authentication header, ex: IlovePandas")
126+
98127
flagSet.Parse(args[0:])
99128

129+
if *yamFileUrl != "" { // we need to download the yaml file
130+
fmt.Println("🌍 downloading ", *yamFileUrl, "...")
131+
err := downloadYamlFile(*yamFileUrl, *authHeaderName, *authHeaderValue, *input)
132+
if err != nil {
133+
fmt.Println("😑", err.Error())
134+
os.Exit(1)
135+
}
136+
}
137+
100138
yamlData, err := readYamlFile(*input)
101139
if err != nil {
102140
fmt.Println("😑", err.Error())

β€Žrelease.envβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
APPLICATION_NAME="snippets"
2-
VERSION="0.0.0"
3-
NICK_NAME="πŸ‰ [watermelon]"
2+
VERSION="0.0.1"
3+
NICK_NAME="πŸ₯ [kiwi]"
44
TAG="v${VERSION}" # for git
55
IMAGE_TAG="${VERSION}"
66
IMAGE_BASE_NAME="${APPLICATION_NAME}"

β€Žremote-run.shβ€Ž

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
go run main.go generate \
3+
--url https://raw.githubusercontent.com/bots-garden/golab-demos/main/snippets-demo/messages.yml \
4+
--input samples/messages.yml \
5+
--output ../.vscode/messages.code-snippets
6+

β€Žsamples/messages.ymlβ€Ž

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
snippet hello world:
2+
prefix: "txt-hello-world"
3+
name: "hello world"
4+
description: "This is the hello world plugin"
5+
scope: ""
6+
body: |
7+
πŸ‘‹ hello world 🌍
8+
9+
snippet good morning:
10+
prefix: "txt-good-morning"
11+
name: "good morning"
12+
description: "this is the good morning plugin"
13+
scope: ""
14+
body: |
15+
πŸ‘‹ good morning ${1:name}
16+

β€Žversion.txtβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
snippets v0.0.0 πŸ‰ [watermelon]
1+
snippets v0.0.1 πŸ₯ [kiwi]

0 commit comments

Comments
Β (0)