Skip to content

Commit 027c892

Browse files
committed
embed zsh completions as stringdata
1 parent b38a4f5 commit 027c892

File tree

4 files changed

+23
-34
lines changed

4 files changed

+23
-34
lines changed

completions/completions.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,12 @@ package completions
33
import (
44
"fmt"
55
"io"
6-
"io/ioutil"
7-
"path/filepath"
8-
"runtime"
96
)
107

118
type Completion interface {
129
GenerateCompletions(w io.Writer) error
1310
}
1411

15-
type Zsh struct{}
16-
1712
var completions = map[string]Completion{
1813
"zsh": &Zsh{},
1914
}
@@ -27,20 +22,3 @@ func GetCompletions(shell string) (Completion, error) {
2722

2823
return completions, nil
2924
}
30-
31-
func (z *Zsh) GenerateCompletions(w io.Writer) error {
32-
_, filename, _, _ := runtime.Caller(0)
33-
dir := filepath.Dir(filename)
34-
filePath := filepath.Join(dir, "mage.zsh")
35-
36-
data, err := ioutil.ReadFile(filePath)
37-
if err != nil {
38-
return err
39-
}
40-
41-
_, err = fmt.Fprint(w, string(data))
42-
if err != nil {
43-
return err
44-
}
45-
return nil
46-
}

completions/completions_test.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package completions
33
import (
44
"bytes"
55
"io"
6-
"io/ioutil"
76
"testing"
87
)
98

@@ -58,11 +57,6 @@ func TestGenerateCompletionsFails(t *testing.T) {
5857
}
5958

6059
func TestGenerateCompletions(t *testing.T) {
61-
zshTestData, err := ioutil.ReadFile("mage.zsh")
62-
if err != nil {
63-
t.Fatalf("expected to get test data, but got error: %v", err)
64-
}
65-
6660
testCases := []struct {
6761
name string
6862
cmpl Completion
@@ -72,7 +66,7 @@ func TestGenerateCompletions(t *testing.T) {
7266
{
7367
name: "zsh",
7468
cmpl: &Zsh{},
75-
expected: string(zshTestData),
69+
expected: string(ZshCompletions),
7670
err: false,
7771
},
7872
}

completions/mage.zsh renamed to completions/zsh.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
#compdef mage
1+
package completions
2+
3+
import (
4+
"fmt"
5+
"io"
6+
)
7+
8+
var ZshCompletions string = `#compdef mage
29
310
local curcontext="$curcontext" state line ret=1
411
typeset -A opt_args
@@ -65,3 +72,15 @@ return ret
6572
# sh-basic-offset: 2
6673
# End:
6774
# vim: ft=zsh sw=2 ts=2 et
75+
`
76+
77+
type Zsh struct{}
78+
79+
func (z *Zsh) GenerateCompletions(w io.Writer) error {
80+
_, err := fmt.Fprint(w, string(ZshCompletions))
81+
82+
if err != nil {
83+
return err
84+
}
85+
return nil
86+
}

mage/main_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"testing"
2727
"time"
2828

29+
"github.com/magefile/mage/completions"
2930
"github.com/magefile/mage/internal"
3031
"github.com/magefile/mage/mg"
3132
)
@@ -902,10 +903,7 @@ func TestCompletionFlag(t *testing.T) {
902903
t.Fatalf("expected code 0, but got %v, %s", code, stderr)
903904
}
904905
actual := stdout.String()
905-
expectedData, err := ioutil.ReadFile("../completions/mage.zsh")
906-
if err != nil {
907-
t.Fatal(err)
908-
}
906+
expectedData := completions.ZshCompletions
909907
expected := string(expectedData)
910908

911909
if actual != expected {

0 commit comments

Comments
 (0)