#!/dev/null ++<< go / build / all / debug printf -- '[ii] building archiver...\n' >&2 "${ZRUN[@]}" ':: go / build / archiver / debug' "${@}" printf -- '[ii] building server...\n' >&2 "${ZRUN[@]}" ':: go / build / server / debug' "${@}" printf -- '[ii] building server-dummy...\n' >&2 "${ZRUN[@]}" ':: go / build / server-dummy / debug' "${@}" printf -- '[ii] building wrapper...\n' >&2 "${ZRUN[@]}" ':: go / build / wrapper / debug' "${@}" !! ++<< go / build / all / release / quick printf -- '[ii] building archiver...\n' >&2 "${ZRUN[@]}" ':: go / build / archiver / release / quick' "${@}" printf -- '[ii] building server...\n' >&2 "${ZRUN[@]}" ':: go / build / server / release / quick' "${@}" printf -- '[ii] building server-dummy...\n' >&2 "${ZRUN[@]}" ':: go / build / server-dummy / release / quick' "${@}" printf -- '[ii] building wrapper...\n' >&2 "${ZRUN[@]}" ':: go / build / wrapper / release / quick' "${@}" !! << go / build / server / debug test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/debug/kawipiko-server" ; then rm -- "${_outputs}/binaries/debug/kawipiko-server" fi exec -- \ nodaemon \ nice -n 19 \ "${ZRUN[@]}" ':: go / tool' \ build \ -o "${_outputs}/binaries/debug/kawipiko-server" \ -- ./cmd/server.go \ # !! << go / build / server / release / quick export -- __BUILD_QUICK=true exec -- "${ZRUN[@]}" ':: go / build / server / release' "${@}" !! << go / build / server / release test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/release/kawipiko-server" ; then rm -- "${_outputs}/binaries/release/kawipiko-server" fi _flags=( #? -buildmode exe -tags netgo ) if test "${__BUILD_QUICK:-false}" != true ; then _flags+=( -gcflags 'all=-l=4' -ldflags 'all=-s' -trimpath -a ) fi exec -- \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ "${_flags[@]}" \ -o "${_outputs}/binaries/release/kawipiko-server" \ -- ./cmd/server.go \ # !! << go / build / archiver / debug test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/debug/kawipiko-archiver" ; then rm -- ${_outputs}/binaries/debug/kawipiko-archiver fi exec -- \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ -o "${_outputs}/binaries/debug/kawipiko-archiver" \ -- ./cmd/archiver.go \ # !! << go / build / archiver / release / quick export -- __BUILD_QUICK=true exec -- "${ZRUN[@]}" ':: go / build / archiver / release' "${@}" !! << go / build / archiver / release test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/release/kawipiko-archiver" ; then rm -- "${_outputs}/binaries/release/kawipiko-archiver" fi _flags=( #? -buildmode exe -tags netgo ) if test "${__BUILD_QUICK:-false}" != true ; then _flags+=( -gcflags 'all=-l=4' -ldflags 'all=-s' -trimpath -a ) fi exec -- \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ "${_flags[@]}" \ -o "${_outputs}/binaries/release/kawipiko-archiver" \ -- ./cmd/archiver.go \ # !! << go / build / wrapper / debug test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/debug/kawipiko-wrapper" ; then rm -- "${_outputs}/binaries/debug/kawipiko-wrapper" fi exec -- \ nodaemon \ nice -n 19 \ "${ZRUN[@]}" ':: go / tool' \ build \ -o "${_outputs}/binaries/debug/kawipiko-wrapper" \ -- ./cmd/wrapper.go \ # !! << go / build / wrapper / release / quick export -- __BUILD_QUICK=true exec -- "${ZRUN[@]}" ':: go / build / wrapper / release' "${@}" !! << go / build / wrapper / release test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/release/kawipiko-wrapper" ; then rm -- "${_outputs}/binaries/release/kawipiko-wrapper" fi _flags=( #? -buildmode exe -tags netgo ) if test "${__BUILD_QUICK:-false}" != true ; then _flags+=( -gcflags 'all=-l=4' -ldflags 'all=-s' -trimpath -a ) fi exec -- \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ "${_flags[@]}" \ -o "${_outputs}/binaries/release/kawipiko-wrapper" \ -- ./cmd/wrapper.go \ # !! << go / build / server-dummy / debug test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/debug/kawipiko-server-dummy" ; then rm -- "${_outputs}/binaries/debug/kawipiko-server-dummy" fi exec -- \ nodaemon \ nice -n 19 \ "${ZRUN[@]}" ':: go / tool' \ build \ -o "${_outputs}/binaries/debug/kawipiko-server-dummy" \ -- ./cmd/server-dummy.go \ # !! << go / build / server-dummy / release / quick export -- __BUILD_QUICK=true exec -- "${ZRUN[@]}" ':: go / build / server-dummy / release' "${@}" !! << go / build / server-dummy / release test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" if test -e "${_outputs}/binaries/release/kawipiko-server-dummy" ; then rm -- "${_outputs}/binaries/release/kawipiko-server-dummy" fi _flags=( #? -buildmode exe -tags netgo ) if test "${__BUILD_QUICK:-false}" != true ; then _flags+=( -gcflags 'all=-l=4' -ldflags 'all=-s' -trimpath -a ) fi exec -- \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ "${_flags[@]}" \ -o "${_outputs}/binaries/release/kawipiko-server-dummy" \ -- ./cmd/server-dummy.go \ # !! ++<< go / build / all / release if test "${#}" -ge 1 ; then _platform_0="${1}" shift -- 1 else _platform_0='all' fi if test "${#}" -ge 1 ; then _component_0="${1}" shift -- 1 else _component_0=all fi test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" for _platform in linux darwin openbsd freebsd ; do if test "${_platform_0}" != all -a "${_platform_0}" != "${_platform}" ; then continue fi for _component in archiver server server-dummy wrapper ; do if test "${_component_0}" != all -a "${_component_0}" != "${_component}" ; then continue fi if test -e "${_outputs}/binaries/release/kawipiko-${_component}--${_platform}" ; then rm -f -- "${_outputs}/binaries/release/kawipiko-${_component}--${_platform}" fi done done for _platform in linux darwin openbsd freebsd ; do if test "${_platform_0}" != all -a "${_platform_0}" != "${_platform}" ; then continue fi for _component in archiver server server-dummy wrapper ; do if test "${_component_0}" != all -a "${_component_0}" != "${_component}" ; then continue fi test ! -e "${_outputs}/binaries/release/kawipiko-${_component}--${_platform}" printf -- '[ii] building `%s` for `%s`...\n' "${_component}" "${_platform}" >&2 _flags=( #? -buildmode exe -tags netgo ) _flags+=( -gcflags 'all=-l=4' -ldflags 'all=-s' -trimpath -a ) env GOOS="${_platform}" \ nodaemon \ nice -n 19 -- \ "${ZRUN[@]}" ':: go / tool' \ build \ "${_flags[@]}" \ -o "${_outputs}/binaries/release/kawipiko-${_component}--${_platform}" \ -- "./cmd/${_component}.go" \ # done done !! << go / build / all / publish test "${#}" -eq 0 for _platform in linux darwin openbsd freebsd ; do for _component in archiver server server-dummy wrapper ; do cp -T -- \ "./.outputs/binaries/release/kawipiko-${_component}--${_platform}" \ "./.outputs/publish/binaries/kawipiko-${_component}--${_platform}" \ # done done !! << go / build / server / analyze test "${#}" -eq 0 _outputs="$( exec -- readlink -e -- ./.outputs )" exec -- "${ZRUN[@]}" ':: go / tool' \ build \ -a \ -gcflags '-m' \ -o "${_outputs}/binaries/analyze/kawipiko-server" \ -- ./cmd/server/server.go \ # !! << go / build / server / analyze / escapes "${ZRUN[@]}" ':: go / build / server / analyze' "${@}" \ 2>&1 \ | grep -F -e ' escapes ' \ | LC_ALL=C sort -n -k 2,2 -t ':' !! << go / dependencies / include test "${#}" -ge 1 exec -- "${ZRUN[@]}" ':: go / tool' \ get \ -v \ -d \ -- \ "${@}" \ # !! << go / dependencies / update test "${#}" -eq 0 exec -- "${ZRUN[@]}" ':: go / tool' \ get \ -v \ -d \ -u \ -- \ all \ # !! << go / dependencies / list test "${#}" -eq 0 exec -- "${ZRUN[@]}" ':: go / tool' \ list \ -m \ -- \ all \ # !! << go / dependencies / tidy test "${#}" -eq 0 exec -- "${ZRUN[@]}" ':: go / tool' \ mod tidy \ # !! << go / dependencies / verify test "${#}" -eq 0 exec -- "${ZRUN[@]}" ':: go / tool' \ mod verify \ # !! << go / dependencies / upgrade test "${#}" -eq 0 "${ZRUN[@]}" ':: go / dependencies / update' "${ZRUN[@]}" ':: go / dependencies / tidy' "${ZRUN[@]}" ':: go / dependencies / verify' "${ZRUN[@]}" ':: go / dependencies / list' !! << go / tool test "${#}" -ge 1 export -n -- \ ZRUN_LIBRARY_SOURCE= \ ZRUN_LIBRARY_URL= \ ZRUN_LIBRARY_IDENTIFIER= \ ZRUN_LIBRARY_FINGERPRINT= \ ZRUN_EXECUTABLE= \ ZRUN_WORKSPACE= \ ZRUN_CACHE= \ # _outputs="$( exec -- readlink -e -- ./.outputs )" _sources="$( exec -- readlink -e -- ./sources )" export -- GOPATH="${_outputs}/go" export -- GOBIN="${_outputs}/go/bin" export -- GOTMPDIR="${_outputs}/go/tmp" export -- GOCACHE="${_outputs}/go/cache" if test -e "${_outputs}/go-tool" ; then _go="$( exec -- readlink -e -- "${_outputs}/go-tool" )" else _go="$( type -P -- go )" fi cd -- "${_sources}" exec -- "${_go}" "${@}" !!