From ad04a0dd9f0c3b386723b7df5e96c71c87610924 Mon Sep 17 00:00:00 2001 From: Samuel N Cui Date: Tue, 26 Sep 2023 15:23:23 +0800 Subject: [PATCH] feat: add auto build --- build.sh | 8 ++++---- build_backend.sh | 8 ++++++++ build_frontend.sh | 12 +++++++++++ build_linux.sh | 7 ------- cmd/tape-export/main.go | 38 ---------------------------------- cmd/tape-import/main.go | 38 ---------------------------------- scripts/maketape | 45 ----------------------------------------- scripts/mounttape | 10 --------- 8 files changed, 24 insertions(+), 142 deletions(-) create mode 100755 build_backend.sh create mode 100755 build_frontend.sh delete mode 100755 build_linux.sh delete mode 100644 cmd/tape-export/main.go delete mode 100644 cmd/tape-import/main.go delete mode 100755 scripts/maketape delete mode 100755 scripts/mounttape diff --git a/build.sh b/build.sh index 7bf3353..70c3e30 100755 --- a/build.sh +++ b/build.sh @@ -1,15 +1,15 @@ #!/usr/bin/env bash -set -ex; +set -e; CURDIR=$(cd $(dirname $0); pwd); cd ${CURDIR}; rm -rf output; mkdir -p output; -go build -mod=vendor -o ./output/httpd ./cmd/tape-httpd; -go build -mod=vendor -o ./output/lto-info ./cmd/lto-info; cp -r scripts ./output/; -cp -r ./frontend/dist ./output/frontend; cp ./cmd/tape-httpd/tape-writer.service ./output/ cp ./cmd/tape-httpd/config.example.yaml ./output/ + +docker run --rm -v $(pwd):/app golang:1.21 sh -c "cd /app && bash build_backend.sh" +docker run --rm -v $(pwd):/app node:20-slim sh -c "cd /app && bash build_frontend.sh" diff --git a/build_backend.sh b/build_backend.sh new file mode 100755 index 0000000..5eb2ae4 --- /dev/null +++ b/build_backend.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -ex; + +CURDIR=$(cd $(dirname $0); pwd); +cd ${CURDIR}; + +go build -o ./output/httpd ./cmd/tape-httpd; +go build -o ./output/lto-info ./cmd/lto-info; diff --git a/build_frontend.sh b/build_frontend.sh new file mode 100755 index 0000000..c50a280 --- /dev/null +++ b/build_frontend.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -ex; + +CURDIR=$(cd $(dirname $0); pwd); +cd ${CURDIR}/frontend; + +export PNPM_HOME="/pnpm"; +export PATH="$PNPM_HOME:$PATH"; +corepack enable; +pnpm install; +pnpm run build; +cp -r ./dist ../output/frontend; diff --git a/build_linux.sh b/build_linux.sh deleted file mode 100755 index c50cd05..0000000 --- a/build_linux.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -set -e; - -CURDIR=$(cd $(dirname $0); pwd); -cd ${CURDIR}; - -docker run --rm -v $(pwd):/app golang:1.19 sh -c "cd /app && bash build.sh" diff --git a/cmd/tape-export/main.go b/cmd/tape-export/main.go deleted file mode 100644 index 9ec0fb0..0000000 --- a/cmd/tape-export/main.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "context" - "os" - - "github.com/samuelncui/tapewriter/external" - "github.com/samuelncui/tapewriter/library" - "github.com/samuelncui/tapewriter/resource" -) - -func main() { - ctx := context.Background() - - db, err := resource.NewDBConn("sqlite", "./tapes.db") - if err != nil { - panic(err) - } - - lib := library.New(db) - if err := lib.AutoMigrate(); err != nil { - panic(err) - } - - file := os.Args[1] - barcode := os.Args[2] - name := os.Args[3] - - f, err := os.Open(file) - if err != nil { - panic(err) - } - - ext := external.New(lib) - if err := ext.ImportACPReport(ctx, barcode, name, "file:tape.key", f); err != nil { - panic(err) - } -} diff --git a/cmd/tape-import/main.go b/cmd/tape-import/main.go deleted file mode 100644 index 9ec0fb0..0000000 --- a/cmd/tape-import/main.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "context" - "os" - - "github.com/samuelncui/tapewriter/external" - "github.com/samuelncui/tapewriter/library" - "github.com/samuelncui/tapewriter/resource" -) - -func main() { - ctx := context.Background() - - db, err := resource.NewDBConn("sqlite", "./tapes.db") - if err != nil { - panic(err) - } - - lib := library.New(db) - if err := lib.AutoMigrate(); err != nil { - panic(err) - } - - file := os.Args[1] - barcode := os.Args[2] - name := os.Args[3] - - f, err := os.Open(file) - if err != nil { - panic(err) - } - - ext := external.New(lib) - if err := ext.ImportACPReport(ctx, barcode, name, "file:tape.key", f); err != nil { - panic(err) - } -} diff --git a/scripts/maketape b/scripts/maketape deleted file mode 100755 index c851b9e..0000000 --- a/scripts/maketape +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env bash -set -e; - -POSITIONAL_ARGS=() -DEVICE="/dev/nst0" -SG_DEVICE=`sg_map | grep ${DEVICE} | awk '{print $1}'` - -while [[ $# -gt 0 ]]; do - case $1 in - -s) - BARCODE="$2" - shift # past argument - shift # past value - ;; - -n) - NAME="$2" - shift # past argument - shift # past value - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -echo "format tape as number '$BARCODE', name '$NAME'" -echo "copy '${POSITIONAL_ARGS[@]}' to tape" -set -- "${POSITIONAL_ARGS[@]}" - -set -ex; - -stenc -f ${DEVICE} -e on -k /root/tape.key -a 1 --ckod -sleep 3 -mkltfs -f -d ${SG_DEVICE} -s $BARCODE -n $NAME -sleep 3 -ltfs -o devname=${SG_DEVICE} -o noatime -o sync_type=unmount -o work_directory=/opt/ltfs -o capture_index -o min_pool_size=256 -o max_pool_size=1024 -o eject /ltfs -sleep 3 -acp --report /opt/ltfs/$BARCODE.json --to-linear $@ /ltfs/ -sleep 3 -umount /ltfs diff --git a/scripts/mounttape b/scripts/mounttape deleted file mode 100755 index f8af91f..0000000 --- a/scripts/mounttape +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -set -e; - -DEVICE="/dev/nst0" -SG_DEVICE=`sg_map | grep ${DEVICE} | awk '{print $1}'` - -set -ex; - -stenc -f ${DEVICE} -e on -k /root/tape.key -a 1 --ckod -ltfs -o devname=${SG_DEVICE} -o noatime -o sync_type=unmount -o work_directory=/opt/ltfs -o capture_index -o min_pool_size=256 -o max_pool_size=1024 -o eject /ltfs