mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
86639acf70
The base directory has all shell scripts in scripts/ and all example/test files in examples/. A Makefile provides all the commands with helpful information. If a developer simply types `make` then vendor is properly updated, the code is formatted, linted, tested, built, acceptance test run, and installed. Linting errors resolved. Ignored test case (`TestParsePath`) updated to work as expected.
35 lines
994 B
Makefile
35 lines
994 B
Makefile
export PROJECT = yaml
|
|
IMPORT_PATH := github.com/mikefarah/${PROJECT}
|
|
|
|
export GIT_COMMIT = $(shell git rev-parse --short HEAD)
|
|
export GIT_DIRTY = $(shell test -n "$$(git status --porcelain)" && echo "+CHANGES" || true)
|
|
export GIT_DESCRIBE = $(shell git describe --tags --always)
|
|
LDFLAGS :=
|
|
# LDFLAGS += -X ${IMPORT_PATH}/${PROJECT}.Commit=${GIT_COMMIT}
|
|
# LDFLAGS += -X ${IMPORT_PATH}/${PROJECT}.Version=${GIT_DESCRIBE}
|
|
|
|
# Windows environment?
|
|
CYG_CHECK := $(shell hash cygpath 2>/dev/null && echo 1)
|
|
ifeq ($(CYG_CHECK),1)
|
|
VBOX_CHECK := $(shell hash VBoxManage 2>/dev/null && echo 1)
|
|
|
|
# Docker Toolbox (pre-Windows 10)
|
|
ifeq ($(VBOX_CHECK),1)
|
|
ROOT := /${PROJECT}
|
|
else
|
|
# Docker Windows
|
|
ROOT := $(shell cygpath -m -a "$(shell pwd)")
|
|
endif
|
|
else
|
|
# all non-windows environments
|
|
ROOT := $(shell pwd)
|
|
endif
|
|
|
|
DEV_IMAGE := ${PROJECT}_dev
|
|
|
|
DOCKRUN := docker run --rm \
|
|
-v ${ROOT}/vendor:/go/src \
|
|
-v ${ROOT}:/${PROJECT}/src/${IMPORT_PATH} \
|
|
-w /${PROJECT}/src/${IMPORT_PATH} \
|
|
${DEV_IMAGE}
|