diff --git a/build/build.sh b/build/build.sh index ef58326c..c2b699ed 100755 --- a/build/build.sh +++ b/build/build.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash function build() { - ROOT=$(dirname $0) + ROOT=$(dirname "$0") JS_ROOT=$ROOT/../web/public/js NAME="edge-admin" DIST=$ROOT/"../dist/${NAME}" @@ -9,15 +9,15 @@ function build() { ARCH=${2} TAG=${3} - if [ -z $OS ]; then + if [ -z "$OS" ]; then echo "usage: build.sh OS ARCH" exit fi - if [ -z $ARCH ]; then + if [ -z "$ARCH" ]; then echo "usage: build.sh OS ARCH" exit fi - if [ -z $TAG ]; then + if [ -z "$TAG" ]; then TAG="community" fi @@ -25,7 +25,7 @@ function build() { echo "checking required commands ..." commands=("zip" "unzip" "go" "find" "sed") for cmd in "${commands[@]}"; do - if [ `which ${cmd}` ]; then + if [ "$(which "${cmd}")" ]; then echo "checking ${cmd}: ok" else echo "checking ${cmd}: not found" @@ -33,49 +33,49 @@ function build() { fi done - VERSION=$(lookup-version $ROOT/../internal/const/const.go) + VERSION=$(lookup-version "$ROOT"/../internal/const/const.go) ZIP="${NAME}-${OS}-${ARCH}-${TAG}-v${VERSION}.zip" # build edge-api - APINodeVersion=$(lookup-version $ROOT"/../../EdgeAPI/internal/const/const.go") + APINodeVersion=$(lookup-version "$ROOT""/../../EdgeAPI/internal/const/const.go") echo "building edge-api v${APINodeVersion} ..." EDGE_API_BUILD_SCRIPT=$ROOT"/../../EdgeAPI/build/build.sh" - if [ ! -f $EDGE_API_BUILD_SCRIPT ]; then + if [ ! -f "$EDGE_API_BUILD_SCRIPT" ]; then echo "unable to find edge-api build script 'EdgeAPI/build/build.sh'" exit fi - cd $ROOT"/../../EdgeAPI/build" + cd "$ROOT""/../../EdgeAPI/build" || exit echo "==============================" - ./build.sh $OS $ARCH $TAG + ./build.sh "$OS" "$ARCH" $TAG echo "==============================" - cd - + cd - || exit # generate files echo "generating files ..." - go run -tags $TAG $ROOT/../cmd/edge-admin/main.go generate - if [ `which uglifyjs` ]; then + go run -tags $TAG "$ROOT"/../cmd/edge-admin/main.go generate + if [ "$(which uglifyjs)" ]; then echo "compress to component.js ..." - uglifyjs --compress --mangle -- ${JS_ROOT}/components.src.js > ${JS_ROOT}/components.js + uglifyjs --compress --mangle -- "${JS_ROOT}"/components.src.js > "${JS_ROOT}"/components.js else echo "copy to component.js ..." - cp ${JS_ROOT}/components.src.js ${JS_ROOT}/components.js + cp "${JS_ROOT}"/components.src.js "${JS_ROOT}"/components.js fi # create dir & copy files echo "copying ..." - if [ ! -d $DIST ]; then - mkdir $DIST - mkdir $DIST/bin - mkdir $DIST/configs - mkdir $DIST/logs + if [ ! -d "$DIST" ]; then + mkdir "$DIST" + mkdir "$DIST"/bin + mkdir "$DIST"/configs + mkdir "$DIST"/logs fi - cp -R $ROOT/../web $DIST/ - rm -f $DIST/web/tmp/* - rm -rf $DIST/web/public/js/components - rm -f $DIST/web/public/js/components.src.js - cp $ROOT/configs/server.template.yaml $DIST/configs/ + cp -R "$ROOT"/../web "$DIST"/ + rm -f "$DIST"/web/tmp/* + rm -rf "$DIST"/web/public/js/components + rm -f "$DIST"/web/public/js/components.src.js + cp "$ROOT"/configs/server.template.yaml "$DIST"/configs/ # change _plus.[ext] to .[ext] if [ "${TAG}" = "plus" ]; then @@ -83,30 +83,30 @@ function build() { exts=("html" "js" "css") for ext in "${exts[@]}"; do pattern="*_plus."${ext} - find $DIST/web/views -type f -name $pattern | \ + find "$DIST"/web/views -type f -name "$pattern" | \ while read filename; do - mv ${filename} "${filename/_plus."${ext}"/."${ext}"}" + mv "${filename}" "${filename/_plus."${ext}"/."${ext}"}" done done fi EDGE_API_ZIP_FILE=$ROOT"/../../EdgeAPI/dist/edge-api-${OS}-${ARCH}-${TAG}-v${APINodeVersion}.zip" - cp $EDGE_API_ZIP_FILE $DIST/ - cd $DIST/ - unzip -q $(basename $EDGE_API_ZIP_FILE) - rm -f $(basename $EDGE_API_ZIP_FILE) - cd - + cp "$EDGE_API_ZIP_FILE" "$DIST"/ + cd "$DIST"/ || exit + unzip -q "$(basename "$EDGE_API_ZIP_FILE")" + rm -f "$(basename "$EDGE_API_ZIP_FILE")" + cd - || exit # build - echo "building "${NAME}" ..." - env GOOS=$OS GOARCH=$ARCH go build -trimpath -tags $TAG -ldflags="-s -w" -o $DIST/bin/${NAME} $ROOT/../cmd/edge-admin/main.go + echo "building ${NAME} ..." + env GOOS="$OS" GOARCH="$ARCH" go build -trimpath -tags $TAG -ldflags="-s -w" -o "$DIST"/bin/${NAME} "$ROOT"/../cmd/edge-admin/main.go # delete hidden files - find $DIST -name ".DS_Store" -delete - find $DIST -name ".gitignore" -delete - find $DIST -name "*.less" -delete - find $DIST -name "*.css.map" -delete - find $DIST -name "*.js.map" -delete + find "$DIST" -name ".DS_Store" -delete + find "$DIST" -name ".gitignore" -delete + find "$DIST" -name "*.less" -delete + find "$DIST" -name "*.css.map" -delete + find "$DIST" -name "*.js.map" -delete # zip echo "zip files ..." @@ -123,15 +123,15 @@ function build() { function lookup-version() { FILE=$1 - VERSION_DATA=$(cat $FILE) + VERSION_DATA=$(cat "$FILE") re="Version[ ]+=[ ]+\"([0-9.]+)\"" if [[ $VERSION_DATA =~ $re ]]; then VERSION=${BASH_REMATCH[1]} - echo $VERSION + echo "$VERSION" else echo "could not match version" exit fi } -build $1 $2 $3 +build "$1" "$2" "$3" diff --git a/dist/.gitignore b/dist/.gitignore index a903b654..51f51b4f 100644 --- a/dist/.gitignore +++ b/dist/.gitignore @@ -1,2 +1,2 @@ *.zip -shield-admin \ No newline at end of file +edge-admin \ No newline at end of file diff --git a/web/public/js/components.js b/web/public/js/components.js index 157acddc..c855ec8d 100644 --- a/web/public/js/components.js +++ b/web/public/js/components.js @@ -417,48 +417,191 @@ Vue.component("traffic-map-box",{props:["v-stats","v-is-attack"],mounted:functio
-`}),Vue.component("ns-route-ranges-box",{props:["v-ranges"],data:function(){let e=this.vRanges;return{ranges:e=null==e?[]:e,isAdding:!1,isAddingBatch:!1,ipRangeFrom:"",ipRangeTo:"",batchIPRange:""}},methods:{add:function(){this.isAdding=!0;let e=this;setTimeout(function(){e.$refs.ipRangeFrom.focus()},100)},remove:function(e){this.ranges.$remove(e)},cancelIPRange:function(){this.isAdding=!1,this.ipRangeFrom="",this.ipRangeTo=""},confirmIPRange:function(){let e=this;this.ipRangeFrom=this.ipRangeFrom.trim(),this.validateIP(this.ipRangeFrom)?(this.ipRangeTo=this.ipRangeTo.trim(),this.validateIP(this.ipRangeTo)?(this.ranges.push({type:"ipRange",params:{ipFrom:this.ipRangeFrom,ipTo:this.ipRangeTo}}),this.cancelIPRange()):teaweb.warn("结束IP填写错误",function(){e.$refs.ipRangeTo.focus()})):teaweb.warn("开始IP填写错误",function(){e.$refs.ipRangeFrom.focus()})},addBatch:function(){this.isAddingBatch=!0;let e=this;setTimeout(function(){e.$refs.batchIPRange.focus()},100)},cancelBatchIPRange:function(){this.isAddingBatch=!1,this.batchIPRange=""},confirmBatchIPRange:function(){let a=this,e=this.batchIPRange;if(0==e.length)teaweb.warn("请填写要加入的IP范围",function(){a.$refs.batchIPRange.focus()});else{let n=[],o="";e.split("\n").forEach(function(t){if(0!=(t=t.trim()).length){let e=(t=t.replace(",",",")).split(",");var i,s;2!=e.length?o=t:(i=e[0].trim(),s=e[1].trim(),a.validateIP(i)&&a.validateIP(s)?n.push({type:"ipRange",params:{ipFrom:i,ipTo:s}}):o=t)}}),0每行一条,格式为
| IP范围列表 * | +
+
+ 每行一条,格式为 |
+
| 排除 | +
+ 选中后表示线路中排除当前条件。 + |
+