Sfoglia il codice sorgente

修复空指针问题 fix #388 尝试修复 arm goreleaser 编译问题

Signed-off-by: allan716 <[email protected]>
allan716 3 anni fa
parent
commit
f770243327

+ 38 - 2
.goreleaser-ChineseSubFinder.yml

@@ -6,11 +6,19 @@ env:
 before:
   hooks:
     - go mod tidy
-    - sudo apt-get update
+    - sudo apt-get update -y
     - sudo apt-get install gcc-multilib
     - sudo apt-get install -y *-w64-x86-*
+    - sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi g++-arm-linux-gnueabihf g++-aarch64-linux-gnu g++-arm-linux-gnueabi
+    # https://github.com/goreleaser/goreleaser-cross 交叉编译的文档
+#    - sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev
+#    - sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
+#    - sudo apt-get install -y aarch64-linux-gnu-gcc
+#    - sudo apt-get install -y aarch64-linux-gnu-g++
+#    - sudo apt-get install -y arm-linux-gnueabihf-gcc
+#    - sudo apt-get install -y arm-linux-gnueabihf-g++
 builds:
-  - id: linux-build
+  - id: linux-amd64-build
     env:
       - CGO_ENABLED=1
     goos:
@@ -21,6 +29,34 @@ builds:
     ldflags:
       - -s -w --extldflags "-static -fpic" -X main.AppVersion=v{{ .Version }} -X main.BaseKey={{ .Env.BASEKEY }} -X main.AESKey16={{ .Env.AESKEY16 }} -X main.AESIv16={{ .Env.AESIV16 }}
 
+  - id: linux-armv7-build
+    env:
+      - CGO_ENABLED=1
+      - CC=arm-linux-gnueabihf-gcc
+      - CXX=arm-linux-gnueabihf-g++
+    goos:
+      - linux
+    goarch:
+      - arm
+    goarm:
+      - 7
+    main: ./cmd/chinesesubfinder/main.go
+    ldflags:
+      - -s -w --extldflags "-static -fpic" -X main.AppVersion=v{{ .Version }} -X main.BaseKey={{ .Env.BASEKEY }} -X main.AESKey16={{ .Env.AESKEY16 }} -X main.AESIv16={{ .Env.AESIV16 }}
+
+  - id: linux-arm64-build
+    env:
+      - CGO_ENABLED=1
+      - CC=aarch64-linux-gnu-gcc
+      - CXX=aarch64-linux-gnu-g++
+    goos:
+      - linux
+    goarch:
+      - arm64
+    main: ./cmd/chinesesubfinder/main.go
+    ldflags:
+      - -s -w --extldflags "-static -fpic" -X main.AppVersion=v{{ .Version }} -X main.BaseKey={{ .Env.BASEKEY }} -X main.AESKey16={{ .Env.AESKEY16 }} -X main.AESIv16={{ .Env.AESIV16 }}
+
   - id: windows-build
     env:
       - CGO_ENABLED=1

+ 10 - 2
internal/pkg/video_scan_and_refresh_helper/video_scan_and_refresh_helper.go

@@ -190,26 +190,34 @@ func (v *VideoScanAndRefreshHelper) ScanNormalMovieAndSeries() (*ScanVideoResult
 	var errMovie, errSeries error
 	wg.Add(1)
 	go func() {
+		defer func() {
+			wg.Done()
+		}()
 		// --------------------------------------------------
 		// 电影
 		// 没有填写 emby_helper api 的信息,那么就走常规的全文件扫描流程
 		normalScanResult.MoviesDirMap, errMovie = my_util.SearchMatchedVideoFileFromDirs(v.log, v.settings.CommonSettings.MoviePaths)
-		wg.Done()
 	}()
 	wg.Add(1)
 	go func() {
+
+		defer func() {
+			wg.Done()
+		}()
 		// --------------------------------------------------
 		// 连续剧
 		// 遍历连续剧总目录下的第一层目录
 		normalScanResult.SeriesDirMap, errSeries = seriesHelper.GetSeriesListFromDirs(v.log, v.settings.CommonSettings.SeriesPaths)
 		// ------------------------------------------------------------------------------
 		// 输出调试信息,有那些连续剧文件夹名称
+		if normalScanResult.SeriesDirMap == nil {
+			return
+		}
 		normalScanResult.SeriesDirMap.Each(func(key interface{}, value interface{}) {
 			for i, s := range value.([]string) {
 				v.log.Debugln("embyHelper == nil GetSeriesList", i, s)
 			}
 		})
-		wg.Done()
 	}()
 	wg.Wait()
 	if errMovie != nil {