52 строки
1.4 KiB
Bash
Исполняемый файл
52 строки
1.4 KiB
Bash
Исполняемый файл
#!/bin/bash
|
|
# Copyright 2012 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.
|
|
|
|
# Run this script in your app root directory, the one containing
|
|
# the app.yaml file. Then point appcfg.py or dev_appserver.py
|
|
# at './tmp' instead of '.'.
|
|
#
|
|
# It creates a symlink forest in a subdirectory named 'tmp' that
|
|
# includes all the files from packages under your app root as
|
|
# well as any packages from your $GOPATH that are needed by
|
|
# the app packages. This makes deployment to App Engine
|
|
# bring in just the packages you need, without manual chasing
|
|
# of dependencies. Perhaps some day appcfg.py and dev_appserver.py
|
|
# will work this way by default.
|
|
|
|
set -e
|
|
rm -rf tmp
|
|
dirs=$(find . -type d)
|
|
mkdir tmp
|
|
|
|
for i in *
|
|
do
|
|
case "$i" in
|
|
tmp | *.go)
|
|
;;
|
|
*)
|
|
ln -s ../$i tmp/$i
|
|
esac
|
|
done
|
|
|
|
# Like App Engine
|
|
export GOOS=linux
|
|
export GOARCH=amd64
|
|
|
|
mkdir tmp/_go_top
|
|
cp $(go list -f '{{range .GoFiles}}{{.}} {{end}}') tmp/_go_top
|
|
|
|
dirs=$(go list -e -f '{{if not .Standard}}{{.ImportPath}} {{end}}' $(go list -f '{{range .Deps}}{{.}} {{end}}' $dirs))
|
|
for import in $dirs
|
|
do
|
|
case "$import" in
|
|
appengine | appengine/*)
|
|
;;
|
|
*)
|
|
mkdir -p tmp/$import
|
|
files=$(go list -f '{{range .GoFiles}}{{$.Dir}}/{{.}} {{end}}' $import)
|
|
ln -s $files tmp/$import 2>&1 | grep -v 'is a directory' || true # ignore subdirectory warnings
|
|
esac
|
|
done
|