feat: started implementing AES.
This commit is contained in:
parent
95c9037391
commit
bf3699257d
4 changed files with 118 additions and 1 deletions
57
aes/colors.go
Normal file
57
aes/colors.go
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
package aes
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
import "strconv"
|
||||||
|
//import "fmt"
|
||||||
|
|
||||||
|
type Effect int
|
||||||
|
type Effects []Effect
|
||||||
|
func (effects Effects) Format() string {
|
||||||
|
intStrs := make([]string, len(effects))
|
||||||
|
for i, e := range effects {
|
||||||
|
intStrs[i] = strconv.Itoa(int(e))
|
||||||
|
}
|
||||||
|
return strings.Join(intStrs, ";")
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
EffectReset Effect = iota
|
||||||
|
EffectBold
|
||||||
|
EffectDim
|
||||||
|
EffectItalic
|
||||||
|
EffectUnderline
|
||||||
|
EffectBlinking
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
EffectInverse Effect = 7 + iota
|
||||||
|
EffectHidden
|
||||||
|
// Effect strikethrough.
|
||||||
|
EffectStirke
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
EffectBlackFG = 30 + iota
|
||||||
|
EffectRedFG
|
||||||
|
EffectGreenFG
|
||||||
|
EffectYellowFG
|
||||||
|
EffectBlueFG
|
||||||
|
EffectMagentaFG
|
||||||
|
EffectCyanFG
|
||||||
|
EffectWhiteFG
|
||||||
|
EffectDefaultFG
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
EffectBlackBG Effect = 40 + iota
|
||||||
|
EffectRedBG
|
||||||
|
EffectGreenBG
|
||||||
|
EffectYellowBG
|
||||||
|
EffectBlueBG
|
||||||
|
EffectMagentaBG
|
||||||
|
EffectCyanBG
|
||||||
|
EffectWhiteBG
|
||||||
|
EffectDefaultBG
|
||||||
|
)
|
||||||
|
|
||||||
|
|
27
aes/es.go
Normal file
27
aes/es.go
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
package aes
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Start.
|
||||||
|
ESC = "\x1B"
|
||||||
|
|
||||||
|
// Control sequence introducer.
|
||||||
|
CSI = ESC+"["
|
||||||
|
|
||||||
|
// Device control string.
|
||||||
|
DCS = ESC+"P"
|
||||||
|
|
||||||
|
// Operating system command.
|
||||||
|
OSC = ESC+"]"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
BEL = "\a"
|
||||||
|
BS = "\b"
|
||||||
|
HT = "\t"
|
||||||
|
LF = "\n"
|
||||||
|
VT = "\v"
|
||||||
|
FF = "\f"
|
||||||
|
CR = "\r"
|
||||||
|
DEL = "\x7F"
|
||||||
|
)
|
||||||
|
|
30
aes/shortcut.go
Normal file
30
aes/shortcut.go
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
package aes
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type EffectText struct {
|
||||||
|
Effects Effects
|
||||||
|
Text string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (et EffectText) String() string {
|
||||||
|
return fmt.Sprintf(
|
||||||
|
CSI+"%sm%s"+CSI+"0m",
|
||||||
|
et.Effects.Format(), et.Text,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
func ETF(format string, v ...any) EffectText {
|
||||||
|
ret := EffectText{}
|
||||||
|
ret.Text = fmt.Sprintf(format, v...)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func (et EffectText) With(effects ...Effect) EffectText {
|
||||||
|
et.Effects = append(et.Effects, effects...)
|
||||||
|
return et
|
||||||
|
}
|
||||||
|
|
||||||
|
func (et EffectText) Bold() EffectText {
|
||||||
|
return et.With(EffectBold)
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import "surdeus.su/core/cli/tx"
|
||||||
import "log"
|
import "log"
|
||||||
import "os"
|
import "os"
|
||||||
import "io"
|
import "io"
|
||||||
|
import "surdeus.su/core/cli/aes"
|
||||||
//import "fmt"
|
//import "fmt"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -32,7 +33,9 @@ func main() {
|
||||||
if key == tx.KeyControlC {
|
if key == tx.KeyControlC {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
term.Printf("shit: %q\r\n", key)
|
term.Print(
|
||||||
|
"shit:", aes.ETF("%q", key).Bold().With(aes.EffectRedFG), "\r\n",
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue