Skip to content

Commit

Permalink
Merge pull request #66 from ClarkChenc/add_fingerprint_cmd
Browse files Browse the repository at this point in the history
Add fingerprint cmd
  • Loading branch information
bladehan1 authored Mar 6, 2024
2 parents f2a5e32 + 2065d2e commit 18eb478
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
62 changes: 62 additions & 0 deletions cmd/geth/fingerprintcmd.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package main

import (
"fmt"
"math"

"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/params"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
"github.com/shirou/gopsutil/mem"
"gopkg.in/urfave/cli.v1"
)

var (
fingerprintCommand = cli.Command{
Name: "fingerprint",
Usage: "Display the system fingerprint",
ArgsUsage: "",
Action: utils.MigrateFlags(showFingerprint),
Category: "FINGERPRINT COMMANDS",
}
)

func getCoresCount(cp []cpu.InfoStat) int {
cores := 0
for i := 0; i < len(cp); i++ {
cores += int(cp[i].Cores)
}
return cores
}

// Run implements the cli.Command interface
func showFingerprint(_ *cli.Context) error {
v, _ := mem.VirtualMemory()
h, _ := host.Info()
cp, _ := cpu.Info()
d, _ := disk.Usage("/")

osName := h.OS
osVer := h.Platform + " - " + h.PlatformVersion + " - " + h.KernelArch
totalMem := math.Floor(float64(v.Total)/(1024*1024*1024)*100) / 100
availableMem := math.Floor(float64(v.Available)/(1024*1024*1024)*100) / 100
usedMem := math.Floor(float64(v.Used)/(1024*1024*1024)*100) / 100
totalDisk := math.Floor(float64(d.Total)/(1024*1024*1024)*100) / 100
availableDisk := math.Floor(float64(d.Free)/(1024*1024*1024)*100) / 100
usedDisk := math.Floor(float64(d.Used)/(1024*1024*1024)*100) / 100

borDetails := fmt.Sprintf("Bor Version : %s", params.VersionWithMeta)
cpuDetails := fmt.Sprintf("CPU : %d cores", getCoresCount(cp))
osDetails := fmt.Sprintf("OS : %s %s ", osName, osVer)
memDetails := fmt.Sprintf("RAM :: total : %v GB, free : %v GB, used : %v GB", totalMem, availableMem, usedMem)
diskDetails := fmt.Sprintf("STORAGE :: total : %v GB, free : %v GB, used : %v GB", totalDisk, availableDisk, usedDisk)

fmt.Println(borDetails)
fmt.Println(cpuDetails)
fmt.Println(osDetails)
fmt.Println(memDetails)
fmt.Println(diskDetails)
return nil
}
1 change: 1 addition & 0 deletions cmd/geth/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ func init() {
utils.ShowDeprecated,
// See snapshot.go
snapshotCommand,
fingerprintCommand,
}
sort.Sort(cli.CommandsByName(app.Commands))

Expand Down

0 comments on commit 18eb478

Please sign in to comment.