mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 15:49:49 +00:00
41 lines
871 B
Go
41 lines
871 B
Go
package cmd
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
"github.com/GopeedLab/gopeed/pkg/rest"
|
|
"github.com/GopeedLab/gopeed/pkg/rest/model"
|
|
"net/http"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
//go:embed banner.txt
|
|
var banner string
|
|
|
|
func Start(cfg *model.StartConfig) {
|
|
fmt.Println(banner)
|
|
srv, listener, err := rest.BuildServer(cfg)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
downloadCfg, err := rest.Downloader.GetConfig()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
if downloadCfg.FirstLoad {
|
|
// Set default download dir to user download dir
|
|
userDir, err := os.UserHomeDir()
|
|
if err == nil {
|
|
downloadDir := filepath.Join(userDir, "Downloads")
|
|
downloadCfg.DownloadDir = downloadDir
|
|
rest.Downloader.PutConfig(downloadCfg)
|
|
}
|
|
|
|
}
|
|
fmt.Printf("Server start success on http://%s\n", listener.Addr().String())
|
|
if err := srv.Serve(listener); err != nil && err != http.ErrServerClosed {
|
|
panic(err)
|
|
}
|
|
}
|