Skip to content

Commit

Permalink
chore: move config from extension to app
Browse files Browse the repository at this point in the history
  • Loading branch information
ElaBosak233 committed May 28, 2024
1 parent c2b49e1 commit 5a6870d
Show file tree
Hide file tree
Showing 41 changed files with 112 additions and 65 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ clean:

swag:
@echo Generating swagger docs...
swag init -g ./cloudsdale.go -o ./api
swag init -g ./cmd/cloudsdale/main.go -o ./api
@echo Swagger docs generated.

build: swag
Expand All @@ -32,5 +32,5 @@ build: swag

run: swag
@echo Running $(PACKAGE)...
go run -ldflags "$(LDFLAGS)" $(PACKAGE)
go run -ldflags "$(LDFLAGS)" $(PACKAGE)/cmd/cloudsdale
@echo Run finished.
File renamed without changes.
28 changes: 16 additions & 12 deletions internal/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ package app

import (
"fmt"
"github.com/TwiN/go-color"
_ "github.com/elabosak233/cloudsdale/api"
"github.com/elabosak233/cloudsdale/internal/app/assets"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/app/db"
"github.com/elabosak233/cloudsdale/internal/app/logger"
"github.com/elabosak233/cloudsdale/internal/app/logger/adapter"
"github.com/elabosak233/cloudsdale/internal/controller"
"github.com/elabosak233/cloudsdale/internal/extension/assets"
"github.com/elabosak233/cloudsdale/internal/extension/casbin"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/extension/container/provider"
"github.com/elabosak233/cloudsdale/internal/extension/database"
"github.com/elabosak233/cloudsdale/internal/extension/logger"
"github.com/elabosak233/cloudsdale/internal/extension/logger/adapter"
"github.com/elabosak233/cloudsdale/internal/global"
"github.com/elabosak233/cloudsdale/internal/middleware"
"github.com/elabosak233/cloudsdale/internal/repository"
Expand All @@ -26,6 +25,7 @@ import (
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
"go.uber.org/zap"
"html/template"
"net/http"
"os"
"strconv"
Expand All @@ -34,25 +34,29 @@ import (
func init() {
data, _ := assets.ReadStaticFile("banner.txt")
banner := string(data)
fmt.Printf("\n%s\n", banner)
fmt.Printf("%s %s\n", color.InBold("Git Commit:"), color.InBold(global.GitCommitID))
fmt.Printf("%s %s\n", color.InBold("Issues:"), color.InBold("https://github.com/elabosak233/Cloudsdale/issues"))
fmt.Printf("%s %s\n\n", color.InBold("License:"), color.InBold("GNU GENERAL PUBLIC LICENSE Version 3"))
t, _ := template.New("cloudsdale").Parse(banner)
_ = t.Execute(os.Stdout, struct {
Version string
Commit string
}{
Version: global.GitTag,
Commit: global.GitCommitID,
})
}

func Run() {
// Initialize the application
logger.InitLogger()
config.InitConfig()
assets.InitAssets()
database.InitDatabase()
db.InitDatabase()
casbin.InitCasbin()
provider.InitContainerProvider()

// Debug mode
isDebug := convertor.ToBoolD(os.Getenv("DEBUG"), false)
if isDebug {
database.Debug()
db.Debug()
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package assets

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/extension/files"
"os"
)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
40 changes: 28 additions & 12 deletions internal/extension/database/database.go → internal/app/db/db.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package database
package db

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/extension/logger/adapter"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/app/logger/adapter"
"github.com/elabosak233/cloudsdale/internal/model"
"go.uber.org/zap"
"golang.org/x/crypto/bcrypt"
Expand All @@ -17,24 +17,33 @@ import (
var db *gorm.DB
var dbInfo string

func Db() *gorm.DB {
return db
}

// InitDatabase initializes the database connection and performs the necessary migrations.
func InitDatabase() {
initDatabaseEngine()
zap.L().Info(fmt.Sprintf("Database Connect Information: %s", dbInfo))
db.Logger = adapter.NewGORMAdapter(zap.L())
syncDatabase()
migrate()
initAdmin()
initCategory()
initDefaultCategories()
selfCheck()
}

func Db() *gorm.DB {
return db
}

// Debug enables the debug mode of the database connection.
func Debug() {
db = db.Debug()
}

// initDatabaseEngine initializes the database connection engine.
// It supports PostgreSQL, MySQL, and SQLite.
// The connection information is read from the configuration file.
// The connection information is formatted according to the database type.
// The connection is established using the GORM library.
// The database connection is stored in the global variable db.
// If an error occurs during the connection, the program will exit.
func initDatabaseEngine() {
var err error
switch config.AppCfg().Db.Provider {
Expand Down Expand Up @@ -68,7 +77,9 @@ func initDatabaseEngine() {
}
}

func syncDatabase() {
// migrate performs the necessary migrations.
// It creates the tables if they do not exist.
func migrate() {
err := db.AutoMigrate(
&model.User{},
&model.Category{},
Expand All @@ -94,8 +105,11 @@ func syncDatabase() {
}
}

// selfCheck performs a self-check.
// It updates the removed_at field of the Pod table.
// If the removed_at field is greater than the current time, it is forcibly assigned the current time.
// This is to prevent subsequent program errors in judgment.
func selfCheck() {
// 对于 pods 中的所有数据,若 removed_at 大于当前时间,则强制赋值为现在的时间,以免后续程序错误判断
db.Model(&model.Pod{}).Where("removed_at > ?", time.Now().UnixMilli()).Update("removed_at", time.Now().UnixMilli())
}

Expand All @@ -121,7 +135,9 @@ func initAdmin() {
}
}

func initCategory() {
// initDefaultCategories initializes the default categories.
// If the categories do not exist, they will be created.
func initDefaultCategories() {
var count int64
db.Model(&model.Category{}).Count(&count)
if count == 0 {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
10 changes: 10 additions & 0 deletions internal/cache/cache.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package cache

type ICache interface {
Get(key string) (value string, err error)
Set(key string, value string, expire int) (err error)
}

func NewCache() ICache {
return nil
}
7 changes: 7 additions & 0 deletions internal/cache/memory.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package cache

type MemoryCache struct{}

func NewMemoryCache() ICache {
return nil
}
7 changes: 7 additions & 0 deletions internal/cache/redis.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package cache

type RedisCache struct{}

func NewRedisCache() ICache {
return nil
}
2 changes: 1 addition & 1 deletion internal/controller/media.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package controller

import (
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/service"
"github.com/gin-gonic/gin"
"net/http"
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/captcha/captcha.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package captcha

import (
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
)

type ICaptcha interface {
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/captcha/recaptcha.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package captcha
import (
"bytes"
"encoding/json"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"io"
"net/http"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/captcha/turnstile.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package captcha

import (
"bytes"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"io"
"k8s.io/apimachinery/pkg/util/json"
"net/http"
Expand Down
4 changes: 2 additions & 2 deletions internal/extension/casbin/casbin.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/model"
gormadapter "github.com/casbin/gorm-adapter/v3"
"github.com/elabosak233/cloudsdale/internal/extension/database"
"github.com/elabosak233/cloudsdale/internal/app/db"
"github.com/elabosak233/cloudsdale/internal/extension/files"
"go.uber.org/zap"
)
Expand All @@ -15,7 +15,7 @@ var (

func InitCasbin() {
adapter, err := gormadapter.NewAdapterByDBWithCustomTable(
database.Db(),
db.Db(),
&gormadapter.CasbinRule{},
"casbins",
)
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/manager/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
ctn "github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
"github.com/docker/go-connections/nat"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/extension/container/provider"
"github.com/elabosak233/cloudsdale/internal/extension/proxy"
"github.com/elabosak233/cloudsdale/internal/model"
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/manager/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/TwiN/go-color"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/extension/container/provider"
"github.com/elabosak233/cloudsdale/internal/model"
"github.com/elabosak233/cloudsdale/internal/utils/generator"
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/manager/manager.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package manager

import (
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/model"
"time"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/provider/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"fmt"
"github.com/TwiN/go-color"
"github.com/docker/docker/client"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"go.uber.org/zap"
)

Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/provider/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package provider
import (
"fmt"
"github.com/TwiN/go-color"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"go.uber.org/zap"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/container/provider/provider.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package provider

import (
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"go.uber.org/zap"
)

Expand Down
15 changes: 9 additions & 6 deletions internal/extension/files/statics/banner.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
██████╗ ██╗ ██████╗ ██╗ ██╗██████╗ ███████╗██████╗ █████╗ ██╗███████╗
██╔════╝███║██╔═████╗██║ ██║██╔══██╗██╔════╝██╔══██╗██╔══██╗███║██╔════╝
██║ ╚██║██║██╔██║██║ ██║██║ ██║███████╗██║ ██║███████║╚██║█████╗
██║ ██║████╔╝██║██║ ██║██║ ██║╚════██║██║ ██║██╔══██║ ██║██╔══╝
╚██████╗ ██║╚██████╔╝╚██████╔╝██████╔╝███████║██████╔╝██║ ██║ ██║███████╗
╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
_ _ _ _
___/ | ___ _ _ __| |___ __| | __ _/ | ___
/ __| |/ _ \| | | |/ _` / __|/ _` |/ _` | |/ _ \
| (__| | (_) | |_| | (_| \__ \ (_| | (_| | | __/
\___|_|\___/ \__,_|\__,_|___/\__,_|\__,_|_|\___|
Version {{.Version}}
Commit: {{.Commit}}
GitHub: https://github.com/elabosak233/cloudsdale

2 changes: 1 addition & 1 deletion internal/extension/proxy/proxy.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package proxy

import (
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
)

type IProxy interface {
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/proxy/tcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package proxy
import (
"errors"
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
"github.com/google/gopacket/pcapgo"
Expand Down
2 changes: 1 addition & 1 deletion internal/extension/proxy/ws.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package proxy

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
"github.com/google/gopacket/pcapgo"
Expand Down
2 changes: 1 addition & 1 deletion internal/middleware/casbin.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package middleware

import (
"github.com/elabosak233/cloudsdale/internal/app/config"
"github.com/elabosak233/cloudsdale/internal/extension/casbin"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/model"
"github.com/elabosak233/cloudsdale/internal/model/request"
"github.com/elabosak233/cloudsdale/internal/service"
Expand Down
2 changes: 1 addition & 1 deletion internal/model/challenge.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package model

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"gorm.io/gorm"
"os"
"path"
Expand Down
2 changes: 1 addition & 1 deletion internal/model/game.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package model

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"gorm.io/gorm"
"os"
"path"
Expand Down
2 changes: 1 addition & 1 deletion internal/model/team.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package model

import (
"fmt"
"github.com/elabosak233/cloudsdale/internal/extension/config"
"github.com/elabosak233/cloudsdale/internal/app/config"
"gorm.io/gorm"
"os"
"path"
Expand Down
Loading

0 comments on commit 5a6870d

Please sign in to comment.