1
0
Fork 0
mirror of https://github.com/vbatts/go-mtree.git synced 2024-12-22 13:56:30 +00:00

Merge pull request #104 from vbatts/multiple_builds_test

make: build for several platfom/arches
This commit is contained in:
Vincent Batts 2016-12-07 22:17:12 -05:00 committed by GitHub
commit 26ccc7a48c
3 changed files with 33 additions and 13 deletions

View file

@ -16,3 +16,4 @@ install: true
script:
- make validation
- make validation.tags
- make build.arches

View file

@ -4,6 +4,7 @@ CWD := $(shell pwd)
SOURCE_FILES := $(shell find . -type f -name "*.go")
CLEAN_FILES := *~
TAGS := cvis
ARCHES := linux,386 linux,amd64 linux,arm linux,arm64 openbsd,amd64 windows,amd64 darwin,amd64
default: build validation
@ -60,6 +61,20 @@ build: $(BUILD)
$(BUILD): $(SOURCE_FILES)
go build ./cmd/$(BUILD)
./bin:
mkdir -p $@
CLEAN_FILES += bin
build.arches: ./bin
@set -e ;\
for pair in $(ARCHES); do \
p=$$(echo $$pair | cut -d , -f 1);\
a=$$(echo $$pair | cut -d , -f 2);\
echo "Building $$p/$$a ...";\
GOOS=$$p GOARCH=$$a go build -o ./bin/gomtree.$$p.$$a ./cmd/gomtree/ ;\
done
clean:
rm -rf $(BUILD) $(CLEAN_FILES)

View file

@ -10,28 +10,32 @@ import (
)
var (
unameKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (string, error) {
// this is bsd specific https://www.freebsd.org/cgi/man.cgi?query=chflags&sektion=2
flagsKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
return emptyKV, nil
}
unameKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
if hdr, ok := info.Sys().(*tar.Header); ok {
return fmt.Sprintf("uname=%s", hdr.Uname), nil
return KeyVal(fmt.Sprintf("uname=%s", hdr.Uname)), nil
}
return "", nil
return emptyKV, nil
}
uidKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (string, error) {
uidKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
if hdr, ok := info.Sys().(*tar.Header); ok {
return fmt.Sprintf("uid=%d", hdr.Uid), nil
return KeyVal(fmt.Sprintf("uid=%d", hdr.Uid)), nil
}
return "", nil
return emptyKV, nil
}
gidKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (string, error) {
gidKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
if hdr, ok := info.Sys().(*tar.Header); ok {
return fmt.Sprintf("gid=%d", hdr.Gid), nil
return KeyVal(fmt.Sprintf("gid=%d", hdr.Gid)), nil
}
return "", nil
return emptyKV, nil
}
nlinkKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (string, error) {
return "", nil
nlinkKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
return emptyKV, nil
}
xattrKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (string, error) {
return "", nil
xattrKeywordFunc = func(path string, info os.FileInfo, r io.Reader) (KeyVal, error) {
return emptyKV, nil
}
)