1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-17 20:47:50 +02:00

fix: snap with empty apps name

refs #1267

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos Alexandro Becker 2020-01-30 10:57:07 -03:00
parent 8408c1b83d
commit a4c91105b5
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 13 additions and 19 deletions

View File

@ -189,10 +189,11 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
// if the user didn't specify any apps then
// default to the main binary being the command:
if len(snap.Apps) == 0 {
metadata.Apps[binaries[0].Name] = AppMetadata{
Command: filepath.Base(binaries[0].Name),
var name = snap.Name
if name == "" {
name = binaries[0].Name
}
metadata.Apps[snap.Name] = AppMetadata{
metadata.Apps[name] = AppMetadata{
Command: filepath.Base(binaries[0].Name),
}
}
@ -226,28 +227,22 @@ func create(ctx *context.Context, snap config.Snapcraft, arch string, binaries [
}
// setup the apps: directive for each binary
for name := range snap.Apps {
for name, config := range snap.Apps {
log.WithField("path", binary.Path).
WithField("name", binary.Name).
Debug("passed binary to snapcraft")
appMetadata := AppMetadata{
Command: binary.Name,
Command: strings.TrimSpace(strings.Join([]string{
binary.Name,
config.Args,
}, " ")),
Plugs: config.Plugs,
Daemon: config.Daemon,
}
if configAppMetadata, ok := snap.Apps[name]; ok {
appMetadata.Plugs = configAppMetadata.Plugs
appMetadata.Daemon = configAppMetadata.Daemon
appMetadata.Command = strings.TrimSpace(strings.Join([]string{
binary.Name,
configAppMetadata.Args,
}, " "))
if configAppMetadata.Completer != "" {
completerPath = configAppMetadata.Completer
appMetadata.Completer = filepath.Base(completerPath)
}
if config.Completer != "" {
appMetadata.Completer = filepath.Base(config.Completer)
}
metadata.Apps[name] = appMetadata

View File

@ -142,7 +142,6 @@ func TestRunPipeWithName(t *testing.T) {
assert.Equal(t, "testsnapname", metadata.Name)
assert.Equal(t, "core18", metadata.Base)
assert.Equal(t, "MIT", metadata.License)
assert.Equal(t, "mybin", metadata.Apps["mybin"].Command)
assert.Equal(t, "mybin", metadata.Apps["testsnapname"].Command)
}