mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
number formatting and better termopts formatting
This commit is contained in:
@@ -3,7 +3,6 @@ package cmdrunner
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
@@ -1310,8 +1309,7 @@ func LineShowCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sst
|
||||
if cmd.RemoteState.Cwd != "" {
|
||||
buf.WriteString(fmt.Sprintf(" %-15s %s\n", "cwd", cmd.RemoteState.Cwd))
|
||||
}
|
||||
termOptsOut, _ := json.Marshal(cmd.TermOpts)
|
||||
buf.WriteString(fmt.Sprintf(" %-15s %s\n", "termopts", string(termOptsOut)))
|
||||
buf.WriteString(fmt.Sprintf(" %-15s %s\n", "termopts", formatTermOpts(cmd.TermOpts)))
|
||||
}
|
||||
update := sstore.ModelUpdate{
|
||||
Info: &sstore.InfoMsgType{
|
||||
@@ -1321,3 +1319,17 @@ func LineShowCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sst
|
||||
}
|
||||
return update, nil
|
||||
}
|
||||
|
||||
func formatTermOpts(termOpts sstore.TermOpts) string {
|
||||
if termOpts.Cols == 0 {
|
||||
return "???"
|
||||
}
|
||||
rtnStr := fmt.Sprintf("%dx%d", termOpts.Rows, termOpts.Cols)
|
||||
if termOpts.FlexRows {
|
||||
rtnStr += " flexrows"
|
||||
}
|
||||
if termOpts.MaxPtySize > 0 {
|
||||
rtnStr += " maxbuf=" + scbase.NumFormatB2(termOpts.MaxPtySize)
|
||||
}
|
||||
return rtnStr
|
||||
}
|
||||
|
||||
@@ -153,3 +153,66 @@ func GenSCUUID() string {
|
||||
return rtn
|
||||
}
|
||||
}
|
||||
|
||||
func NumFormatDec(num int64) string {
|
||||
var signStr string
|
||||
absNum := num
|
||||
if absNum < 0 {
|
||||
absNum = -absNum
|
||||
signStr = "-"
|
||||
}
|
||||
if absNum < 1000 {
|
||||
// raw num
|
||||
return signStr + strconv.FormatInt(absNum, 10)
|
||||
}
|
||||
if absNum < 1000000 {
|
||||
// k num
|
||||
kVal := float64(absNum) / 1000
|
||||
return signStr + strconv.FormatFloat(kVal, 'f', 2, 64) + "k"
|
||||
}
|
||||
if absNum < 1000000000 {
|
||||
// M num
|
||||
mVal := float64(absNum) / 1000000
|
||||
return signStr + strconv.FormatFloat(mVal, 'f', 2, 64) + "m"
|
||||
} else {
|
||||
// G num
|
||||
gVal := float64(absNum) / 1000000000
|
||||
return signStr + strconv.FormatFloat(gVal, 'f', 2, 64) + "g"
|
||||
}
|
||||
}
|
||||
|
||||
func NumFormatB2(num int64) string {
|
||||
var signStr string
|
||||
absNum := num
|
||||
if absNum < 0 {
|
||||
absNum = -absNum
|
||||
signStr = "-"
|
||||
}
|
||||
if absNum < 1024 {
|
||||
// raw num
|
||||
return signStr + strconv.FormatInt(absNum, 10)
|
||||
}
|
||||
if absNum < 1000000 {
|
||||
// k num
|
||||
if absNum%1024 == 0 {
|
||||
return signStr + strconv.FormatInt(absNum/1024, 10) + "K"
|
||||
}
|
||||
kVal := float64(absNum) / 1024
|
||||
return signStr + strconv.FormatFloat(kVal, 'f', 2, 64) + "K"
|
||||
}
|
||||
if absNum < 1000000000 {
|
||||
// M num
|
||||
if absNum%(1024*1024) == 0 {
|
||||
return signStr + strconv.FormatInt(absNum/(1024*1024), 10) + "M"
|
||||
}
|
||||
mVal := float64(absNum) / (1024 * 1024)
|
||||
return signStr + strconv.FormatFloat(mVal, 'f', 2, 64) + "M"
|
||||
} else {
|
||||
// G num
|
||||
if absNum%(1024*1024*1024) == 0 {
|
||||
return signStr + strconv.FormatInt(absNum/(1024*1024*1024), 10) + "G"
|
||||
}
|
||||
gVal := float64(absNum) / (1024 * 1024 * 1024)
|
||||
return signStr + strconv.FormatFloat(gVal, 'f', 2, 64) + "G"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user