Skip to content

Instantly share code, notes, and snippets.

@zhiyue
Created May 11, 2023 10:08
Show Gist options
  • Save zhiyue/22083f2ad88afc2ed483d36f2734fd05 to your computer and use it in GitHub Desktop.
Save zhiyue/22083f2ad88afc2ed483d36f2734fd05 to your computer and use it in GitHub Desktop.
bash to bat
@echo off
setlocal EnableDelayedExpansion
set process_name=%1
cd %process_name%
call :compile
call :make_output
echo [build done!]
exit /b 0
:compile
%GOROOT%\bin\go vet .\...
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
set GO111MODULE=auto
%GOROOT%\bin\go build -o %process_name%
exit /b
:make_output
if "%process_name%"=="crawlerServer" (
call :compile
cd ..
mkdir output
mkdir output\bin
mkdir output\data
mkdir output\lib
mkdir output\log
mkdir output\testDoc
mkdir output\unittest
mkdir output\third_party
mkdir output\conf
copy %process_name%\%process_name% output\bin
copy %process_name%\input.json output
) else (
call :compile
cd ..
rmdir /s /q output
mkdir output
mkdir output\bin
mkdir output\data
mkdir output\lib
mkdir output\log
mkdir output\testDoc
mkdir output\unittest
mkdir output\conf
copy %process_name%\%process_name% output\bin
copy conf\conf.ini output\conf
)
exit /b
#!/bin/bash
# 有错误立即停止
set -e
# 详细打印执行的命令
set -x
process_name=$1
cd ${process_name}
function compile() {
${GOROOT}/bin/go vet ./...
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=auto ${GOROOT}/bin/go build -o ${process_name}
}
function make_output() {
# 如果 process_name 是 crawlerServer 则会执行下面的命令
if [ ${process_name} = "crawlerServer" ]; then
(
compile &&
cd - &&
# rm -rf output &&
mkdir -p output &&
mkdir -p output/bin &&
mkdir -p output/data &&
mkdir -p output/lib &&
mkdir -p output/log &&
mkdir -p output/testDoc &&
mkdir -p output/unittest &&
mkdir -p output/third_party &&
mkdir -p output/conf &&
# cp -r third_party/crawler-google-places output/third_party/crawler-google-places &&
cp ${process_name}/${process_name} output/bin &&
cp ${process_name}/input.json output/
# cp conf/conf.ini output/conf/
) || { echo "[make output error]"; exit 1; }
else
(
compile &&
cd - &&
rm -rf output &&
mkdir -p output &&
mkdir -p output/bin &&
mkdir -p output/data &&
mkdir -p output/lib &&
mkdir -p output/log &&
mkdir -p output/testDoc &&
mkdir -p output/unittest &&
mkdir -p output/conf &&
cp ${process_name}/${process_name} output/bin &&
cp conf/conf.ini output/conf/
) || { echo "[make output error]"; exit 1; }
fi
}
make_output
echo "[build done!]"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment