diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..9b14c37 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,41 @@ +name: goreleaser + +on: + push: + branches: + - main + tags: + - v*.*.* + +permissions: + contents: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - + name: Fetch all tags + run: git fetch --force --tags + - + name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.19 + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + # either 'goreleaser' (default) or 'goreleaser-pro' + distribution: goreleaser + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Your GoReleaser Pro key, if you are using the 'goreleaser-pro' distribution + # GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/.gitignore b/.gitignore index b32b330..5ab2489 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ # IDE .vscode/ target/ +dist/ __debug_bin diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..8a57e2b --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,43 @@ +# This is an example .goreleaser.yml file with some sensible defaults. +# Make sure to check the documentation at https://goreleaser.com +project_name: casaos-user-service +before: + hooks: + # You may remove this if you don't use go modules. + - go mod tidy +builds: + - binary: build/usr/bin/casaos-user-service + env: + - CGO_ENABLED=0 + goos: + - linux + goarch: + - amd64 + - arm64 + - arm + goarm: + - 7 +archives: + - name_template: "{{ .Os }}-{{ .Arch }}-{{ .ProjectName }}" + replacements: + arm: arm-7 + files: + - build/**/* +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: "{{ incpatch .Version }}-snapshot" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' +release: + github: + owner: IceWhaleTech + name: CasaOS-UserService + draft: true + prerelease: auto + mode: replace + name_template: "v{{ .Version }}" diff --git a/main.go b/main.go index 9680801..5a681bf 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "log" "net" "net/http" + "os" "github.com/IceWhaleTech/CasaOS-Common/utils/logger" "github.com/IceWhaleTech/CasaOS-Gateway/common" @@ -15,21 +16,27 @@ import ( "github.com/IceWhaleTech/CasaOS-UserService/pkg/utils/random" "github.com/IceWhaleTech/CasaOS-UserService/route" "github.com/IceWhaleTech/CasaOS-UserService/service" - "gorm.io/gorm" ) -const localhost = "127.0.0.1" - -var ( - sqliteDB *gorm.DB - configFlag = flag.String("c", "", "config address") - dbFlag = flag.String("db", "", "db path") - resetUser = flag.Bool("ru", false, "reset user") - user = flag.String("user", "", "user name") +const ( + version = "0.3.5" + localhost = "127.0.0.1" ) func init() { + configFlag := flag.String("c", "", "config address") + dbFlag := flag.String("db", "", "db path") + resetUserFlag := flag.Bool("ru", false, "reset user") + userFlag := flag.String("user", "", "user name") + versionFlag := flag.Bool("v", false, "version") + flag.Parse() + + if *versionFlag { + fmt.Println(version) + os.Exit(0) + } + config.InitSetup(*configFlag) logger.LogInit(config.AppInfo.LogPath, config.AppInfo.LogSaveName, config.AppInfo.LogFileExt) @@ -38,31 +45,33 @@ func init() { *dbFlag = config.AppInfo.DBPath + "/db" } - sqliteDB = sqlite.GetDb(*dbFlag) + sqliteDB := sqlite.GetDb(*dbFlag) service.MyService = service.NewService(sqliteDB, config.CommonInfo.RuntimePath) -} -func main() { - r := route.InitRouter() - - if *resetUser { - if user == nil || len(*user) == 0 { + if *resetUserFlag { + if userFlag == nil || len(*userFlag) == 0 { fmt.Println("user is empty") return } - userData := service.MyService.User().GetUserAllInfoByName(*user) + + userData := service.MyService.User().GetUserAllInfoByName(*userFlag) + if userData.Id == 0 { fmt.Println("user not exist") return } + password := random.RandomString(6, false) userData.Password = encryption.GetMD5ByStr(password) service.MyService.User().UpdateUserPassword(userData) fmt.Println("User reset successful") fmt.Println("UserName:" + userData.Username) fmt.Println("Password:" + password) - return } +} + +func main() { + r := route.InitRouter() listener, err := net.Listen("tcp", net.JoinHostPort(localhost, "0")) if err != nil {