Skip to content

Commit 890b3d8

Browse files
authored
Merge pull request #54 from grafana/support-archive-in-cli
support archive in cli
2 parents 3b7d570 + f4ee3ff commit 890b3d8

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

cmd/cmd.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,15 @@ func New() *cobra.Command {
7575

7676
func deps(opts *options, args []string) error {
7777
if len(args) > 0 {
78-
opts.Script.Name = args[0]
78+
filename := args[0]
79+
switch filepath.Ext(filename) {
80+
case ".js":
81+
opts.Script.Name = filename
82+
case ".tar":
83+
opts.Archive.Name = filename
84+
default:
85+
return fmt.Errorf("unsupported file extension: %s", filepath.Ext(filename))
86+
}
7987
}
8088

8189
var out io.Writer

cmd/cmd_test.go

+15-5
Original file line numberDiff line numberDiff line change
@@ -14,43 +14,53 @@ func Test_New(t *testing.T) {
1414
t.Parallel()
1515

1616
root := cmd.New()
17-
1817
require.Equal(t, "k6deps [flags] [script-file]", root.Use)
1918

2019
dir := t.TempDir()
2120

2221
scriptfile := filepath.Join("testdata", "script.js")
22+
archive := filepath.Join("testdata", "archive.tar")
23+
2324
out := filepath.Clean(filepath.Join(dir, "output"))
2425

26+
root = cmd.New()
2527
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "-o", out, scriptfile})
26-
2728
err := root.Execute()
2829
require.NoError(t, err)
2930

3031
contents, err := os.ReadFile(out)
3132
require.NoError(t, err)
3233
require.Equal(t, `{"k6/x/faker":">v0.3.0","xk6-top":"*"}`+"\n", string(contents))
3334

34-
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "--format", "json", "-o", out, scriptfile})
35+
root = cmd.New()
36+
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "-o", out, archive})
37+
err = root.Execute()
38+
require.NoError(t, err)
3539

40+
contents, err = os.ReadFile(out)
41+
require.NoError(t, err)
42+
require.Equal(t, `{"k6":">0.54","k6/x/faker":">0.4.0","k6/x/sql":">=1.0.1","k6/x/sql/driver/ramsql":"*"}`+"\n", string(contents))
43+
44+
root = cmd.New()
45+
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "--format", "json", "-o", out, scriptfile})
3646
err = root.Execute()
3747
require.NoError(t, err)
3848

3949
contents, err = os.ReadFile(out)
4050
require.NoError(t, err)
4151
require.Equal(t, `{"k6/x/faker":">v0.3.0","xk6-top":"*"}`+"\n", string(contents))
4252

53+
root = cmd.New()
4354
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "--format", "text", "-o", out, scriptfile})
44-
4555
err = root.Execute()
4656
require.NoError(t, err)
4757

4858
contents, err = os.ReadFile(out)
4959
require.NoError(t, err)
5060
require.Equal(t, `k6/x/faker>v0.3.0;xk6-top*`+"\n", string(contents))
5161

62+
root = cmd.New()
5263
root.SetArgs([]string{"--ingnore-env", "--ignore-manifest", "--format", "js", "-o", out, scriptfile})
53-
5464
err = root.Execute()
5565
require.NoError(t, err)
5666

cmd/testdata/archive.tar

11 KB
Binary file not shown.

0 commit comments

Comments
 (0)