NextGB, web demo powerd by vue
This commit is contained in:
167
build.sh
Executable file
167
build.sh
Executable file
@ -0,0 +1,167 @@
|
||||
#!/bin/bash
|
||||
|
||||
BINARY_NAME="bin/srs-sip"
|
||||
MAIN_PATH="main/main.go"
|
||||
VUE_DIR="html/NextGB"
|
||||
CONFIG_FILE="conf/config.yaml"
|
||||
|
||||
# 检测操作系统类型
|
||||
case "$(uname -s)" in
|
||||
Darwin*)
|
||||
echo "Mac OS X detected"
|
||||
;;
|
||||
Linux*)
|
||||
echo "Linux detected"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown operating system"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
build() {
|
||||
echo "Building Go binary..."
|
||||
mkdir -p bin
|
||||
go build -o ${BINARY_NAME} ${MAIN_PATH}
|
||||
|
||||
echo "Copying config file..."
|
||||
if [ -f "${CONFIG_FILE}" ]; then
|
||||
mkdir -p "bin/$(dirname ${CONFIG_FILE})"
|
||||
cp -a "${CONFIG_FILE}" "bin/$(dirname ${CONFIG_FILE})/"
|
||||
echo "Config file copied to bin/$(dirname ${CONFIG_FILE})/"
|
||||
else
|
||||
echo "Warning: ${CONFIG_FILE} not found"
|
||||
fi
|
||||
}
|
||||
|
||||
clean() {
|
||||
echo "Cleaning..."
|
||||
rm -rf ${BINARY_NAME}
|
||||
rm -rf ${VUE_DIR}/dist
|
||||
rm -rf ${VUE_DIR}/node_modules
|
||||
rm -rf bin/html
|
||||
rm -rf bin/${CONFIG_FILE}
|
||||
}
|
||||
|
||||
run() {
|
||||
echo "Running application..."
|
||||
go build -o ${BINARY_NAME} ${MAIN_PATH}
|
||||
./${BINARY_NAME}
|
||||
}
|
||||
|
||||
vue_install() {
|
||||
echo "Installing Vue dependencies..."
|
||||
cd ${VUE_DIR}
|
||||
npm install
|
||||
cd ../..
|
||||
}
|
||||
|
||||
vue_build() {
|
||||
echo "Building Vue project..."
|
||||
if [ ! -d "${VUE_DIR}" ]; then
|
||||
echo "Error: Vue directory not found at ${VUE_DIR}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check Node.js version
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo "Error: Node.js is not installed"
|
||||
return 1
|
||||
fi
|
||||
|
||||
NODE_VERSION=$(node -v | cut -d "v" -f 2)
|
||||
NODE_MAJOR_VERSION=$(echo $NODE_VERSION | cut -d "." -f 1)
|
||||
if [ "$NODE_MAJOR_VERSION" -lt 17 ]; then
|
||||
echo "Error: Node.js version 17 or higher is required (current version: $NODE_VERSION)"
|
||||
echo "Please upgrade Node.js using your package manager or nvm"
|
||||
return 1
|
||||
fi
|
||||
|
||||
pushd ${VUE_DIR} > /dev/null
|
||||
echo "Current directory: $(pwd)"
|
||||
|
||||
if [ ! -f "package.json" ]; then
|
||||
echo "Error: package.json not found in ${VUE_DIR}"
|
||||
popd > /dev/null
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check if node_modules exists and install dependencies if needed
|
||||
if [ ! -d "node_modules" ] || [ ! -f "node_modules/.package-lock.json" ]; then
|
||||
echo "Node modules not found or incomplete, installing dependencies..."
|
||||
npm install
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: Failed to install dependencies"
|
||||
popd > /dev/null
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Running npm run build..."
|
||||
npm run build
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: Vue build failed"
|
||||
popd > /dev/null
|
||||
return 1
|
||||
fi
|
||||
popd > /dev/null
|
||||
echo "Vue build completed successfully"
|
||||
|
||||
echo "Copying dist files to bin directory..."
|
||||
rm -rf bin/html
|
||||
mkdir -p bin
|
||||
if [ ! -d "${VUE_DIR}/dist" ]; then
|
||||
echo "Error: Vue dist directory not found at ${VUE_DIR}/dist"
|
||||
return 1
|
||||
fi
|
||||
cp -r "${VUE_DIR}/dist" "bin/html"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Vue dist files successfully copied to bin/html"
|
||||
else
|
||||
echo "Error copying files"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
vue_dev() {
|
||||
echo "Starting Vue development server..."
|
||||
cd ${VUE_DIR}
|
||||
npm run dev
|
||||
cd ../..
|
||||
}
|
||||
|
||||
build_all() {
|
||||
clean
|
||||
build
|
||||
vue_build
|
||||
}
|
||||
|
||||
# 根据命令行参数执行相应的功能
|
||||
case "$1" in
|
||||
"build")
|
||||
build
|
||||
;;
|
||||
"clean")
|
||||
clean
|
||||
;;
|
||||
"run")
|
||||
run
|
||||
;;
|
||||
"vue-install")
|
||||
vue_install
|
||||
;;
|
||||
"vue-build")
|
||||
vue_build
|
||||
;;
|
||||
"vue-dev")
|
||||
vue_dev
|
||||
;;
|
||||
"all"|"")
|
||||
build_all
|
||||
;;
|
||||
*)
|
||||
echo "Unknown command: $1"
|
||||
echo "Usage: $0 {build|clean|run|vue-install|vue-build|vue-dev|all}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user