mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-02-09 13:36:56 +02:00
fix: snap autocompletions (#1346)
closes #1343 Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
This commit is contained in:
parent
d7c540523d
commit
a099acf5f5
@ -210,7 +210,6 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
|
||||
|
||||
for _, binary := range binaries {
|
||||
// build the binaries and link resources
|
||||
completerPath := ""
|
||||
destBinaryPath := filepath.Join(primeDir, filepath.Base(binary.Path))
|
||||
log.WithField("src", binary.Path).
|
||||
WithField("dst", destBinaryPath).
|
||||
@ -223,19 +222,6 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
|
||||
return errors.Wrap(err, "failed to change binary permissions")
|
||||
}
|
||||
|
||||
if completerPath != "" {
|
||||
destCompleterPath := filepath.Join(primeDir, filepath.Base(completerPath))
|
||||
log.WithField("src", completerPath).
|
||||
WithField("dst", destCompleterPath).
|
||||
Debug("linking")
|
||||
if err := os.Link(completerPath, destCompleterPath); err != nil {
|
||||
return errors.Wrap(err, "failed to link completer")
|
||||
}
|
||||
if err := os.Chmod(destCompleterPath, 0444); err != nil {
|
||||
return errors.Wrap(err, "failed to change completer permissions")
|
||||
}
|
||||
}
|
||||
|
||||
// setup the apps: directive for each binary
|
||||
for name, config := range snap.Apps {
|
||||
log.WithField("path", binary.Path).
|
||||
@ -252,7 +238,20 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
|
||||
}
|
||||
|
||||
if config.Completer != "" {
|
||||
appMetadata.Completer = filepath.Base(config.Completer)
|
||||
destCompleterPath := filepath.Join(primeDir, config.Completer)
|
||||
if err := os.MkdirAll(filepath.Dir(destCompleterPath), 0755); err != nil {
|
||||
return errors.Wrapf(err, "failed to create folder")
|
||||
}
|
||||
log.WithField("src", config.Completer).
|
||||
WithField("dst", destCompleterPath).
|
||||
Debug("linking")
|
||||
if err := os.Link(config.Completer, destCompleterPath); err != nil {
|
||||
return errors.Wrap(err, "failed to link completer")
|
||||
}
|
||||
if err := os.Chmod(destCompleterPath, 0444); err != nil {
|
||||
return errors.Wrap(err, "failed to change completer permissions")
|
||||
}
|
||||
appMetadata.Completer = config.Completer
|
||||
}
|
||||
|
||||
metadata.Apps[name] = appMetadata
|
||||
|
@ -46,6 +46,7 @@ func TestRunPipeMissingInfo(t *testing.T) {
|
||||
func TestRunPipe(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -88,6 +89,7 @@ func TestRunPipe(t *testing.T) {
|
||||
func TestRunPipeInvalidNameTemplate(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -112,6 +114,7 @@ func TestRunPipeInvalidNameTemplate(t *testing.T) {
|
||||
func TestRunPipeWithName(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -148,6 +151,7 @@ func TestRunPipeWithName(t *testing.T) {
|
||||
func TestRunPipeWithBinaryInDir(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -182,6 +186,7 @@ func TestRunPipeWithBinaryInDir(t *testing.T) {
|
||||
func TestRunPipeMetadata(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -248,6 +253,7 @@ func TestNoSnapcraftInPath(t *testing.T) {
|
||||
func TestRunNoArguments(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, err)
|
||||
@ -284,6 +290,7 @@ func TestRunNoArguments(t *testing.T) {
|
||||
func TestCompleter(t *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(folder)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
require.NoError(t, os.Mkdir(dist, 0755))
|
||||
require.NoError(t, err)
|
||||
@ -299,7 +306,7 @@ func TestCompleter(t *testing.T) {
|
||||
"mybin": {
|
||||
Daemon: "simple",
|
||||
Args: "",
|
||||
Completer: "mybin-completer.bash",
|
||||
Completer: "testdata/mybin-completer.bash",
|
||||
},
|
||||
},
|
||||
Builds: []string{"foo"},
|
||||
@ -316,7 +323,7 @@ func TestCompleter(t *testing.T) {
|
||||
err = yaml.Unmarshal(yamlFile, &metadata)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "mybin", metadata.Apps["mybin"].Command)
|
||||
assert.Equal(t, "mybin-completer.bash", metadata.Apps["mybin"].Completer)
|
||||
assert.Equal(t, "testdata/mybin-completer.bash", metadata.Apps["mybin"].Completer)
|
||||
}
|
||||
|
||||
func TestDefault(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user