mirror of
https://github.com/oneclickvirt/basics.git
synced 2025-10-05 16:48:09 +08:00
62 lines
1.9 KiB
Go
62 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"net/http"
|
|
"os"
|
|
"runtime"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/oneclickvirt/basics/model"
|
|
"github.com/oneclickvirt/basics/network"
|
|
"github.com/oneclickvirt/basics/system"
|
|
"github.com/oneclickvirt/basics/utils"
|
|
)
|
|
|
|
func main() {
|
|
var showVersion, help bool
|
|
var language string
|
|
basicsFlag := flag.NewFlagSet("basics", flag.ContinueOnError)
|
|
basicsFlag.BoolVar(&help, "h", false, "Show help information")
|
|
basicsFlag.BoolVar(&showVersion, "v", false, "Show version")
|
|
basicsFlag.BoolVar(&model.EnableLoger, "log", false, "Enable logging")
|
|
basicsFlag.StringVar(&language, "l", "", "Set language (en or zh)")
|
|
basicsFlag.Parse(os.Args[1:])
|
|
if help {
|
|
fmt.Printf("Usage: %s [options]\n", os.Args[0])
|
|
basicsFlag.PrintDefaults()
|
|
return
|
|
}
|
|
if showVersion {
|
|
fmt.Println(model.BasicsVersion)
|
|
return
|
|
}
|
|
if language == "" {
|
|
language = "zh"
|
|
}
|
|
language = strings.ToLower(language)
|
|
go func() {
|
|
http.Get("https://hits.spiritlhl.net/basics.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false")
|
|
}()
|
|
fmt.Println("Repo:", "https://github.com/oneclickvirt/basics")
|
|
preCheck := utils.CheckPublicAccess(3 * time.Second)
|
|
var ipInfo string
|
|
if preCheck.Connected && preCheck.StackType == "DualStack" {
|
|
ipInfo, _, _ = network.NetworkCheck("both", false, language)
|
|
} else if preCheck.Connected && preCheck.StackType == "IPv4" {
|
|
ipInfo, _, _ = network.NetworkCheck("ipv4", false, language)
|
|
} else if preCheck.Connected && preCheck.StackType == "IPv6" {
|
|
ipInfo, _, _ = network.NetworkCheck("ipv6", false, language)
|
|
}
|
|
res := system.CheckSystemInfo(language)
|
|
fmt.Println("--------------------------------------------------")
|
|
fmt.Printf(strings.ReplaceAll(res+ipInfo, "\n\n", "\n"))
|
|
fmt.Println("--------------------------------------------------")
|
|
if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
|
|
fmt.Println("Press Enter to exit...")
|
|
fmt.Scanln()
|
|
}
|
|
}
|