|  | #!/bin/bash -eu | 
|  |  | 
|  | # Copyright 2020 The Go Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style | 
|  | # license that can be found in the LICENSE file. | 
|  |  | 
|  | set -o pipefail | 
|  |  | 
|  | output=$1 | 
|  | tempfile=$(mktemp) | 
|  | cd $(dirname $0) | 
|  |  | 
|  | cat > $tempfile <<END | 
|  | // Copyright 2020 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | //go:generate ./gen-licenses.sh licenses.go | 
|  | package hooks | 
|  |  | 
|  | const licensesText = \` | 
|  | END | 
|  |  | 
|  | # List all the modules gopls depends on, except other golang.org modules, which | 
|  | # are known to have the same license. | 
|  | mods=$(go list -deps -f '{{with .Module}}{{.Path}}{{end}}' golang.org/x/tools/gopls | sort -u | grep -v golang.org) | 
|  | for mod in $mods; do | 
|  | # Find the license file, either LICENSE or COPYING, and add it to the result. | 
|  | dir=$(go list -m -f {{.Dir}} $mod) | 
|  | license=$(ls -1 $dir | grep -E -i '^(LICENSE|COPYING)$') | 
|  | echo "-- $mod $license --" >> $tempfile | 
|  | echo >> $tempfile | 
|  | sed 's/^-- / &/' $dir/$license >> $tempfile | 
|  | echo >> $tempfile | 
|  | done | 
|  |  | 
|  | echo "\`" >> $tempfile | 
|  | mv $tempfile $output |