package main import ( "fmt" ) func processGodownloader(repo, path, filename string) ([]byte, error) { cfg, err := Load(repo, path, filename) if err != nil { return nil, fmt.Errorf("unable to parse: %s", err) } // hacky way for when the project has multiple archives. // for now this only handles the first archive. // TODO: support this once multiple archives is done on goreleaser side. if len(cfg.Archives) > 0 { cfg.Archive = cfg.Archives[0] } // get archive name template archName, err := makeName("NAME=", cfg.Archive.NameTemplate) cfg.Archive.NameTemplate = archName if err != nil { return nil, fmt.Errorf("unable generate archive name: %s", err) } // get checksum name template checkName, err := makeName("CHECKSUM=", cfg.Checksum.NameTemplate) cfg.Checksum.NameTemplate = checkName if err != nil { return nil, fmt.Errorf("unable generate checksum name: %s", err) } return makeShell(shellGodownloader, cfg) } // nolint: lll const shellGodownloader = `#!/bin/sh set -e # Code generated by godownloader on {{ timestamp }}. DO NOT EDIT. # usage() { this=$1 cat <