mirror of
https://github.com/aditya-K2/gspt.git
synced 2026-01-08 21:37:58 -05:00
Implement Config Parser
This commit is contained in:
530
config/colors.go
Normal file
530
config/colors.go
Normal file
@@ -0,0 +1,530 @@
|
||||
// # Colors and Style
|
||||
//
|
||||
// You can change `colors` and `styles` for some of the aspects of `gomp`
|
||||
//
|
||||
// #### Let's say to you want to change Color of Artist from the default Purple to Red
|
||||
//
|
||||
// In your `config.yml`
|
||||
// ```yml
|
||||
// COLORS:
|
||||
//
|
||||
// artist:
|
||||
//
|
||||
// foreground: Red
|
||||
//
|
||||
// # Another Example
|
||||
// pbar_artist:
|
||||
//
|
||||
// foreground: "#ff0000" # For Hex Values
|
||||
// bold: True # Changes the Style
|
||||
// italic: False
|
||||
//
|
||||
// ```
|
||||
//
|
||||
// 
|
||||
// 
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/aditya-K2/utils"
|
||||
"github.com/gdamore/tcell/v2"
|
||||
)
|
||||
|
||||
var (
|
||||
ColorError = func(s string) {
|
||||
_s := fmt.Sprintf("Wrong Color Provided: %s", s)
|
||||
utils.Print("RED", _s)
|
||||
os.Exit(-1)
|
||||
}
|
||||
DColors = map[string]tcell.Color{
|
||||
"Black": tcell.ColorBlack,
|
||||
"Maroon": tcell.ColorMaroon,
|
||||
"Green": tcell.ColorGreen,
|
||||
"Olive": tcell.ColorOlive,
|
||||
"Navy": tcell.ColorNavy,
|
||||
"Purple": tcell.ColorPurple,
|
||||
"Teal": tcell.ColorTeal,
|
||||
"Silver": tcell.ColorSilver,
|
||||
"Gray": tcell.ColorGray,
|
||||
"Red": tcell.ColorRed,
|
||||
"Lime": tcell.ColorLime,
|
||||
"Yellow": tcell.ColorYellow,
|
||||
"Blue": tcell.ColorBlue,
|
||||
"Fuchsia": tcell.ColorFuchsia,
|
||||
"Aqua": tcell.ColorAqua,
|
||||
"White": tcell.ColorWhite,
|
||||
"16": tcell.Color16,
|
||||
"17": tcell.Color17,
|
||||
"18": tcell.Color18,
|
||||
"19": tcell.Color19,
|
||||
"20": tcell.Color20,
|
||||
"21": tcell.Color21,
|
||||
"22": tcell.Color22,
|
||||
"23": tcell.Color23,
|
||||
"24": tcell.Color24,
|
||||
"25": tcell.Color25,
|
||||
"26": tcell.Color26,
|
||||
"27": tcell.Color27,
|
||||
"28": tcell.Color28,
|
||||
"29": tcell.Color29,
|
||||
"30": tcell.Color30,
|
||||
"31": tcell.Color31,
|
||||
"32": tcell.Color32,
|
||||
"33": tcell.Color33,
|
||||
"34": tcell.Color34,
|
||||
"35": tcell.Color35,
|
||||
"36": tcell.Color36,
|
||||
"37": tcell.Color37,
|
||||
"38": tcell.Color38,
|
||||
"39": tcell.Color39,
|
||||
"40": tcell.Color40,
|
||||
"41": tcell.Color41,
|
||||
"42": tcell.Color42,
|
||||
"43": tcell.Color43,
|
||||
"44": tcell.Color44,
|
||||
"45": tcell.Color45,
|
||||
"46": tcell.Color46,
|
||||
"47": tcell.Color47,
|
||||
"48": tcell.Color48,
|
||||
"49": tcell.Color49,
|
||||
"50": tcell.Color50,
|
||||
"51": tcell.Color51,
|
||||
"52": tcell.Color52,
|
||||
"53": tcell.Color53,
|
||||
"54": tcell.Color54,
|
||||
"55": tcell.Color55,
|
||||
"56": tcell.Color56,
|
||||
"57": tcell.Color57,
|
||||
"58": tcell.Color58,
|
||||
"59": tcell.Color59,
|
||||
"60": tcell.Color60,
|
||||
"61": tcell.Color61,
|
||||
"62": tcell.Color62,
|
||||
"63": tcell.Color63,
|
||||
"64": tcell.Color64,
|
||||
"65": tcell.Color65,
|
||||
"66": tcell.Color66,
|
||||
"67": tcell.Color67,
|
||||
"68": tcell.Color68,
|
||||
"69": tcell.Color69,
|
||||
"70": tcell.Color70,
|
||||
"71": tcell.Color71,
|
||||
"72": tcell.Color72,
|
||||
"73": tcell.Color73,
|
||||
"74": tcell.Color74,
|
||||
"75": tcell.Color75,
|
||||
"76": tcell.Color76,
|
||||
"77": tcell.Color77,
|
||||
"78": tcell.Color78,
|
||||
"79": tcell.Color79,
|
||||
"80": tcell.Color80,
|
||||
"81": tcell.Color81,
|
||||
"82": tcell.Color82,
|
||||
"83": tcell.Color83,
|
||||
"84": tcell.Color84,
|
||||
"85": tcell.Color85,
|
||||
"86": tcell.Color86,
|
||||
"87": tcell.Color87,
|
||||
"88": tcell.Color88,
|
||||
"89": tcell.Color89,
|
||||
"90": tcell.Color90,
|
||||
"91": tcell.Color91,
|
||||
"92": tcell.Color92,
|
||||
"93": tcell.Color93,
|
||||
"94": tcell.Color94,
|
||||
"95": tcell.Color95,
|
||||
"96": tcell.Color96,
|
||||
"97": tcell.Color97,
|
||||
"98": tcell.Color98,
|
||||
"99": tcell.Color99,
|
||||
"100": tcell.Color100,
|
||||
"101": tcell.Color101,
|
||||
"102": tcell.Color102,
|
||||
"103": tcell.Color103,
|
||||
"104": tcell.Color104,
|
||||
"105": tcell.Color105,
|
||||
"106": tcell.Color106,
|
||||
"107": tcell.Color107,
|
||||
"108": tcell.Color108,
|
||||
"109": tcell.Color109,
|
||||
"110": tcell.Color110,
|
||||
"111": tcell.Color111,
|
||||
"112": tcell.Color112,
|
||||
"113": tcell.Color113,
|
||||
"114": tcell.Color114,
|
||||
"115": tcell.Color115,
|
||||
"116": tcell.Color116,
|
||||
"117": tcell.Color117,
|
||||
"118": tcell.Color118,
|
||||
"119": tcell.Color119,
|
||||
"120": tcell.Color120,
|
||||
"121": tcell.Color121,
|
||||
"122": tcell.Color122,
|
||||
"123": tcell.Color123,
|
||||
"124": tcell.Color124,
|
||||
"125": tcell.Color125,
|
||||
"126": tcell.Color126,
|
||||
"127": tcell.Color127,
|
||||
"128": tcell.Color128,
|
||||
"129": tcell.Color129,
|
||||
"130": tcell.Color130,
|
||||
"131": tcell.Color131,
|
||||
"132": tcell.Color132,
|
||||
"133": tcell.Color133,
|
||||
"134": tcell.Color134,
|
||||
"135": tcell.Color135,
|
||||
"136": tcell.Color136,
|
||||
"137": tcell.Color137,
|
||||
"138": tcell.Color138,
|
||||
"139": tcell.Color139,
|
||||
"140": tcell.Color140,
|
||||
"141": tcell.Color141,
|
||||
"142": tcell.Color142,
|
||||
"143": tcell.Color143,
|
||||
"144": tcell.Color144,
|
||||
"145": tcell.Color145,
|
||||
"146": tcell.Color146,
|
||||
"147": tcell.Color147,
|
||||
"148": tcell.Color148,
|
||||
"149": tcell.Color149,
|
||||
"150": tcell.Color150,
|
||||
"151": tcell.Color151,
|
||||
"152": tcell.Color152,
|
||||
"153": tcell.Color153,
|
||||
"154": tcell.Color154,
|
||||
"155": tcell.Color155,
|
||||
"156": tcell.Color156,
|
||||
"157": tcell.Color157,
|
||||
"158": tcell.Color158,
|
||||
"159": tcell.Color159,
|
||||
"160": tcell.Color160,
|
||||
"161": tcell.Color161,
|
||||
"162": tcell.Color162,
|
||||
"163": tcell.Color163,
|
||||
"164": tcell.Color164,
|
||||
"165": tcell.Color165,
|
||||
"166": tcell.Color166,
|
||||
"167": tcell.Color167,
|
||||
"168": tcell.Color168,
|
||||
"169": tcell.Color169,
|
||||
"170": tcell.Color170,
|
||||
"171": tcell.Color171,
|
||||
"172": tcell.Color172,
|
||||
"173": tcell.Color173,
|
||||
"174": tcell.Color174,
|
||||
"175": tcell.Color175,
|
||||
"176": tcell.Color176,
|
||||
"177": tcell.Color177,
|
||||
"178": tcell.Color178,
|
||||
"179": tcell.Color179,
|
||||
"180": tcell.Color180,
|
||||
"181": tcell.Color181,
|
||||
"182": tcell.Color182,
|
||||
"183": tcell.Color183,
|
||||
"184": tcell.Color184,
|
||||
"185": tcell.Color185,
|
||||
"186": tcell.Color186,
|
||||
"187": tcell.Color187,
|
||||
"188": tcell.Color188,
|
||||
"189": tcell.Color189,
|
||||
"190": tcell.Color190,
|
||||
"191": tcell.Color191,
|
||||
"192": tcell.Color192,
|
||||
"193": tcell.Color193,
|
||||
"194": tcell.Color194,
|
||||
"195": tcell.Color195,
|
||||
"196": tcell.Color196,
|
||||
"197": tcell.Color197,
|
||||
"198": tcell.Color198,
|
||||
"199": tcell.Color199,
|
||||
"200": tcell.Color200,
|
||||
"201": tcell.Color201,
|
||||
"202": tcell.Color202,
|
||||
"203": tcell.Color203,
|
||||
"204": tcell.Color204,
|
||||
"205": tcell.Color205,
|
||||
"206": tcell.Color206,
|
||||
"207": tcell.Color207,
|
||||
"208": tcell.Color208,
|
||||
"209": tcell.Color209,
|
||||
"210": tcell.Color210,
|
||||
"211": tcell.Color211,
|
||||
"212": tcell.Color212,
|
||||
"213": tcell.Color213,
|
||||
"214": tcell.Color214,
|
||||
"215": tcell.Color215,
|
||||
"216": tcell.Color216,
|
||||
"217": tcell.Color217,
|
||||
"218": tcell.Color218,
|
||||
"219": tcell.Color219,
|
||||
"220": tcell.Color220,
|
||||
"221": tcell.Color221,
|
||||
"222": tcell.Color222,
|
||||
"223": tcell.Color223,
|
||||
"224": tcell.Color224,
|
||||
"225": tcell.Color225,
|
||||
"226": tcell.Color226,
|
||||
"227": tcell.Color227,
|
||||
"228": tcell.Color228,
|
||||
"229": tcell.Color229,
|
||||
"230": tcell.Color230,
|
||||
"231": tcell.Color231,
|
||||
"232": tcell.Color232,
|
||||
"233": tcell.Color233,
|
||||
"234": tcell.Color234,
|
||||
"235": tcell.Color235,
|
||||
"236": tcell.Color236,
|
||||
"237": tcell.Color237,
|
||||
"238": tcell.Color238,
|
||||
"239": tcell.Color239,
|
||||
"240": tcell.Color240,
|
||||
"241": tcell.Color241,
|
||||
"242": tcell.Color242,
|
||||
"243": tcell.Color243,
|
||||
"244": tcell.Color244,
|
||||
"245": tcell.Color245,
|
||||
"246": tcell.Color246,
|
||||
"247": tcell.Color247,
|
||||
"248": tcell.Color248,
|
||||
"249": tcell.Color249,
|
||||
"250": tcell.Color250,
|
||||
"251": tcell.Color251,
|
||||
"252": tcell.Color252,
|
||||
"253": tcell.Color253,
|
||||
"254": tcell.Color254,
|
||||
"255": tcell.Color255,
|
||||
"AliceBlue": tcell.ColorAliceBlue,
|
||||
"AquaMarine": tcell.ColorAquaMarine,
|
||||
"Azure": tcell.ColorAzure,
|
||||
"Beige": tcell.ColorBeige,
|
||||
"Bisque": tcell.ColorBisque,
|
||||
"BlueViolet": tcell.ColorBlueViolet,
|
||||
"Brown": tcell.ColorBrown,
|
||||
"BurlyWood": tcell.ColorBurlyWood,
|
||||
"CadetBlue": tcell.ColorCadetBlue,
|
||||
"Chartreuse": tcell.ColorChartreuse,
|
||||
"Chocolate": tcell.ColorChocolate,
|
||||
"Coral": tcell.ColorCoral,
|
||||
"Cornsilk": tcell.ColorCornsilk,
|
||||
"Crimson": tcell.ColorCrimson,
|
||||
"DarkBlue": tcell.ColorDarkBlue,
|
||||
"DarkCyan": tcell.ColorDarkCyan,
|
||||
"DarkGray": tcell.ColorDarkGray,
|
||||
"DarkGreen": tcell.ColorDarkGreen,
|
||||
"DarkKhaki": tcell.ColorDarkKhaki,
|
||||
"DarkMagenta": tcell.ColorDarkMagenta,
|
||||
"DarkOrange": tcell.ColorDarkOrange,
|
||||
"DarkOrchid": tcell.ColorDarkOrchid,
|
||||
"DarkRed": tcell.ColorDarkRed,
|
||||
"DarkSalmon": tcell.ColorDarkSalmon,
|
||||
"DarkViolet": tcell.ColorDarkViolet,
|
||||
"DeepPink": tcell.ColorDeepPink,
|
||||
"Pink": tcell.ColorPink,
|
||||
"DeepSkyBlue": tcell.ColorDeepSkyBlue,
|
||||
"DimGray": tcell.ColorDimGray,
|
||||
"DodgerBlue": tcell.ColorDodgerBlue,
|
||||
"FireBrick": tcell.ColorFireBrick,
|
||||
"FloralWhite": tcell.ColorFloralWhite,
|
||||
"ForestGreen": tcell.ColorForestGreen,
|
||||
"Gainsboro": tcell.ColorGainsboro,
|
||||
"GhostWhite": tcell.ColorGhostWhite,
|
||||
"Gold": tcell.ColorGold,
|
||||
"Goldenrod": tcell.ColorGoldenrod,
|
||||
"GreenYellow": tcell.ColorGreenYellow,
|
||||
"Honeydew": tcell.ColorHoneydew,
|
||||
"HotPink": tcell.ColorHotPink,
|
||||
"IndianRed": tcell.ColorIndianRed,
|
||||
"Indigo": tcell.ColorIndigo,
|
||||
"Ivory": tcell.ColorIvory,
|
||||
"Khaki": tcell.ColorKhaki,
|
||||
"Lavender": tcell.ColorLavender,
|
||||
"LawnGreen": tcell.ColorLawnGreen,
|
||||
"LightBlue": tcell.ColorLightBlue,
|
||||
"LightCoral": tcell.ColorLightCoral,
|
||||
"LightCyan": tcell.ColorLightCyan,
|
||||
"LightGray": tcell.ColorLightGray,
|
||||
"LightGreen": tcell.ColorLightGreen,
|
||||
"LightPink": tcell.ColorLightPink,
|
||||
"LightSalmon": tcell.ColorLightSalmon,
|
||||
"Linen": tcell.ColorLinen,
|
||||
"MediumBlue": tcell.ColorMediumBlue,
|
||||
"MintCream": tcell.ColorMintCream,
|
||||
"OldLace": tcell.ColorOldLace,
|
||||
"Orchid": tcell.ColorOrchid,
|
||||
"PaleGreen": tcell.ColorPaleGreen,
|
||||
"PapayaWhip": tcell.ColorPapayaWhip,
|
||||
"PeachPuff": tcell.ColorPeachPuff,
|
||||
"Peru": tcell.ColorPeru,
|
||||
"Plum": tcell.ColorPlum,
|
||||
"PowderBlue": tcell.ColorPowderBlue,
|
||||
"RosyBrown": tcell.ColorRosyBrown,
|
||||
"SaddleBrown": tcell.ColorSaddleBrown,
|
||||
"Salmon": tcell.ColorSalmon,
|
||||
"SandyBrown": tcell.ColorSandyBrown,
|
||||
"SeaGreen": tcell.ColorSeaGreen,
|
||||
"Seashell": tcell.ColorSeashell,
|
||||
"Sienna": tcell.ColorSienna,
|
||||
"Skyblue": tcell.ColorSkyblue,
|
||||
"SlateBlue": tcell.ColorSlateBlue,
|
||||
"SlateGray": tcell.ColorSlateGray,
|
||||
"Snow": tcell.ColorSnow,
|
||||
"SpringGreen": tcell.ColorSpringGreen,
|
||||
"SteelBlue": tcell.ColorSteelBlue,
|
||||
"Tan": tcell.ColorTan,
|
||||
"Thistle": tcell.ColorThistle,
|
||||
"Tomato": tcell.ColorTomato,
|
||||
"Turquoise": tcell.ColorTurquoise,
|
||||
"Violet": tcell.ColorViolet,
|
||||
"Wheat": tcell.ColorWheat,
|
||||
"WhiteSmoke": tcell.ColorWhiteSmoke,
|
||||
"YellowGreen": tcell.ColorYellowGreen,
|
||||
}
|
||||
)
|
||||
|
||||
type Color struct {
|
||||
Fg string `mapstructure:"foreground"`
|
||||
Bg string `mapstructure:"background"`
|
||||
Bold bool `mapstructure:"bold"`
|
||||
Italic bool `mapstructure:"italic"`
|
||||
}
|
||||
|
||||
type Colors struct {
|
||||
Artist Color `mapstructure:"artist"`
|
||||
Album Color `mapstructure:"album"`
|
||||
Track Color `mapstructure:"track"`
|
||||
Genre Color `mapstructure:"genre"`
|
||||
Folder Color `mapstructure:"folder"`
|
||||
Timestamp Color `mapstructure:"timestamp"`
|
||||
PBarArtist Color `mapstructure:"pbar_artist"`
|
||||
PBarTrack Color `mapstructure:"pbar_track"`
|
||||
PlaylistNav Color `mapstructure:"playlist_nav"`
|
||||
Nav Color `mapstructure:"nav"`
|
||||
ContextMenu Color `mapstructure:"context_menu"`
|
||||
|
||||
Null Color
|
||||
}
|
||||
|
||||
func (c Color) Foreground() tcell.Color {
|
||||
if strings.HasPrefix(c.Fg, "#") && len(c.Fg) == 7 {
|
||||
return tcell.GetColor(c.Fg)
|
||||
} else if val, ok := DColors[c.Fg]; ok {
|
||||
return val
|
||||
} else {
|
||||
ColorError(c.Fg)
|
||||
return tcell.ColorBlack
|
||||
}
|
||||
}
|
||||
|
||||
func (c Color) Background() tcell.Color {
|
||||
if c.Bg == "" {
|
||||
return tcell.ColorBlack
|
||||
}
|
||||
if strings.HasPrefix(c.Bg, "#") && len(c.Bg) == 7 {
|
||||
return tcell.GetColor(c.Bg)
|
||||
} else if val, ok := DColors[c.Bg]; ok {
|
||||
return val
|
||||
} else {
|
||||
ColorError(c.Bg)
|
||||
return tcell.ColorBlack
|
||||
}
|
||||
}
|
||||
|
||||
func (c Color) Style() tcell.Style {
|
||||
return tcell.StyleDefault.
|
||||
Foreground(c.Foreground()).
|
||||
Background(c.Background()).
|
||||
Bold(c.Bold).
|
||||
Italic(c.Italic)
|
||||
}
|
||||
|
||||
func (c Color) String() string {
|
||||
style := ""
|
||||
if c.Bold {
|
||||
style += "b"
|
||||
}
|
||||
if c.Italic {
|
||||
style += "i"
|
||||
}
|
||||
checkColor := func(s string) string {
|
||||
var res string
|
||||
if _, ok := DColors[s]; ok {
|
||||
res = strings.ToLower(s)
|
||||
} else if strings.HasPrefix(s, "#") && len(s) == 7 {
|
||||
res = s
|
||||
} else {
|
||||
ColorError(s)
|
||||
}
|
||||
return res
|
||||
}
|
||||
foreground := checkColor(c.Fg)
|
||||
return fmt.Sprintf("[%s::%s]", foreground, style)
|
||||
}
|
||||
|
||||
func NewColors() *Colors {
|
||||
return &Colors{
|
||||
Artist: Color{
|
||||
Fg: "Pink",
|
||||
Bold: false,
|
||||
Italic: false,
|
||||
},
|
||||
Album: Color{
|
||||
Fg: "Green",
|
||||
Bold: false,
|
||||
Italic: false,
|
||||
},
|
||||
Track: Color{
|
||||
Fg: "Blue",
|
||||
Bold: false,
|
||||
Italic: false,
|
||||
},
|
||||
Timestamp: Color{
|
||||
Fg: "Red",
|
||||
Bold: false,
|
||||
Italic: true,
|
||||
},
|
||||
Genre: Color{
|
||||
Fg: "DarkCyan",
|
||||
Bold: true,
|
||||
Italic: false,
|
||||
},
|
||||
Folder: Color{
|
||||
Fg: "Yellow",
|
||||
Bold: true,
|
||||
Italic: false,
|
||||
},
|
||||
PBarArtist: Color{
|
||||
Fg: "Blue",
|
||||
Bold: true,
|
||||
Italic: false,
|
||||
},
|
||||
PBarTrack: Color{
|
||||
Fg: "Green",
|
||||
Bold: true,
|
||||
Italic: true,
|
||||
},
|
||||
PlaylistNav: Color{
|
||||
Fg: "Coral",
|
||||
Bold: false,
|
||||
Italic: false,
|
||||
},
|
||||
Nav: Color{
|
||||
Fg: "PapayaWhip",
|
||||
Bold: false,
|
||||
Italic: false,
|
||||
},
|
||||
ContextMenu: Color{
|
||||
Fg: "Turquoise",
|
||||
Bold: true,
|
||||
Italic: false,
|
||||
},
|
||||
Null: Color{
|
||||
Fg: "White",
|
||||
Bold: true,
|
||||
Italic: false,
|
||||
},
|
||||
}
|
||||
}
|
||||
77
config/config.go
Normal file
77
config/config.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/aditya-K2/utils"
|
||||
"github.com/fsnotify/fsnotify"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
type ConfigS struct {
|
||||
CacheDir string `mapstructure:"cache_dir"`
|
||||
RedrawInterval int `mapstructure:"redraw_interval"`
|
||||
Colors *Colors `mapstructure:"colors"`
|
||||
AdditionalPaddingX int `mapstructure:"additional_padding_x"`
|
||||
AdditionalPaddingY int `mapstructure:"additional_padding_y"`
|
||||
ExtraImageWidthX float64 `mapstructure:"image_width_extra_x"`
|
||||
ExtraImageWidthY float64 `mapstructure:"image_width_extra_y"`
|
||||
}
|
||||
|
||||
func NewConfigS() *ConfigS {
|
||||
return &ConfigS{
|
||||
AdditionalPaddingX: 12,
|
||||
AdditionalPaddingY: 16,
|
||||
ExtraImageWidthX: -1.5,
|
||||
ExtraImageWidthY: -3.75,
|
||||
CacheDir: utils.CheckDirectoryFmt(userCacheDir),
|
||||
RedrawInterval: 500,
|
||||
Colors: NewColors(),
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
configDir, configErr = os.UserConfigDir()
|
||||
userCacheDir, cacheErr = os.UserCacheDir()
|
||||
ConfigPath = configDir + "/gspt"
|
||||
Config = NewConfigS()
|
||||
OnConfigChange func()
|
||||
)
|
||||
|
||||
func ReadConfig() {
|
||||
parseFlags()
|
||||
if configErr != nil {
|
||||
utils.Print("RED", "Couldn't get $XDG_CONFIG!")
|
||||
panic(configErr)
|
||||
}
|
||||
|
||||
if cacheErr != nil {
|
||||
utils.Print("RED", "Couldn't get CACHE DIR!")
|
||||
panic(cacheErr)
|
||||
}
|
||||
|
||||
viper.SetConfigName("config")
|
||||
viper.AddConfigPath(ConfigPath)
|
||||
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
utils.Print("RED", "Could Not Read Config file.\n")
|
||||
} else {
|
||||
viper.Unmarshal(Config)
|
||||
}
|
||||
|
||||
// Expanding ~ to the User's Home Directory
|
||||
expandHome := func() {
|
||||
Config.CacheDir = utils.ExpandHomeDir(Config.CacheDir)
|
||||
}
|
||||
|
||||
viper.OnConfigChange(func(e fsnotify.Event) {
|
||||
viper.Unmarshal(Config)
|
||||
expandHome()
|
||||
if OnConfigChange != nil {
|
||||
OnConfigChange()
|
||||
}
|
||||
})
|
||||
viper.WatchConfig()
|
||||
|
||||
expandHome()
|
||||
}
|
||||
11
config/flags.go
Normal file
11
config/flags.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"flag"
|
||||
)
|
||||
|
||||
func parseFlags() {
|
||||
flag.StringVar(&ConfigPath, "c", ConfigPath,
|
||||
"Specify The Directory where to check for config.yml file.")
|
||||
flag.Parse()
|
||||
}
|
||||
101
config/key.go
Normal file
101
config/key.go
Normal file
@@ -0,0 +1,101 @@
|
||||
package config
|
||||
|
||||
import "github.com/gdamore/tcell/v2"
|
||||
|
||||
type Key struct {
|
||||
r rune
|
||||
k tcell.Key
|
||||
}
|
||||
|
||||
var (
|
||||
m = map[string]tcell.Key{
|
||||
"Backspace": tcell.KeyBackspace,
|
||||
"Tab": tcell.KeyTab,
|
||||
"Esc": tcell.KeyEsc,
|
||||
"Escape": tcell.KeyEscape,
|
||||
"Enter ": tcell.KeyEnter,
|
||||
"Backspace2": tcell.KeyBackspace2,
|
||||
"CtrlSpace": tcell.KeyCtrlSpace,
|
||||
"CtrlA": tcell.KeyCtrlA,
|
||||
"CtrlB": tcell.KeyCtrlB,
|
||||
"CtrlC": tcell.KeyCtrlC,
|
||||
"CtrlD": tcell.KeyCtrlD,
|
||||
"CtrlE": tcell.KeyCtrlE,
|
||||
"CtrlF": tcell.KeyCtrlF,
|
||||
"CtrlG": tcell.KeyCtrlG,
|
||||
"CtrlH": tcell.KeyCtrlH,
|
||||
"CtrlI": tcell.KeyCtrlI,
|
||||
"CtrlJ": tcell.KeyCtrlJ,
|
||||
"CtrlK": tcell.KeyCtrlK,
|
||||
"CtrlL": tcell.KeyCtrlL,
|
||||
"CtrlM": tcell.KeyCtrlM,
|
||||
"CtrlN": tcell.KeyCtrlN,
|
||||
"CtrlO": tcell.KeyCtrlO,
|
||||
"CtrlP": tcell.KeyCtrlP,
|
||||
"CtrlQ": tcell.KeyCtrlQ,
|
||||
"CtrlR": tcell.KeyCtrlR,
|
||||
"CtrlS": tcell.KeyCtrlS,
|
||||
"CtrlT": tcell.KeyCtrlT,
|
||||
"CtrlU": tcell.KeyCtrlU,
|
||||
"CtrlV": tcell.KeyCtrlV,
|
||||
"CtrlW": tcell.KeyCtrlW,
|
||||
"CtrlX": tcell.KeyCtrlX,
|
||||
"CtrlY": tcell.KeyCtrlY,
|
||||
"CtrlZ": tcell.KeyCtrlZ,
|
||||
"CtrlLeftSq": tcell.KeyCtrlLeftSq,
|
||||
"CtrlBackslash": tcell.KeyCtrlBackslash,
|
||||
"CtrlRightSq": tcell.KeyCtrlRightSq,
|
||||
"CtrlCarat": tcell.KeyCtrlCarat,
|
||||
"CtrlUnderscore": tcell.KeyCtrlUnderscore,
|
||||
"Up": tcell.KeyUp,
|
||||
"Down": tcell.KeyDown,
|
||||
"Right": tcell.KeyRight,
|
||||
"Left": tcell.KeyLeft,
|
||||
"UpLeft": tcell.KeyUpLeft,
|
||||
"UpRight": tcell.KeyUpRight,
|
||||
"DownLeft": tcell.KeyDownLeft,
|
||||
"DownRight": tcell.KeyDownRight,
|
||||
"Center": tcell.KeyCenter,
|
||||
"PgUp": tcell.KeyPgUp,
|
||||
"PgDn": tcell.KeyPgDn,
|
||||
"Home": tcell.KeyHome,
|
||||
"End": tcell.KeyEnd,
|
||||
"Insert": tcell.KeyInsert,
|
||||
"Delete": tcell.KeyDelete,
|
||||
"Help": tcell.KeyHelp,
|
||||
"Exit": tcell.KeyExit,
|
||||
"Clear": tcell.KeyClear,
|
||||
"Cancel": tcell.KeyCancel,
|
||||
"Print": tcell.KeyPrint,
|
||||
"Pause": tcell.KeyPause,
|
||||
"Backtab": tcell.KeyBacktab,
|
||||
}
|
||||
)
|
||||
|
||||
func (k *Key) IsRune() bool {
|
||||
if k.r == 0 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (k *Key) Rune() rune {
|
||||
return k.r
|
||||
}
|
||||
|
||||
func (k *Key) Key() tcell.Key {
|
||||
return k.k
|
||||
}
|
||||
|
||||
func NewKey(s string) Key {
|
||||
if len(s) == 1 {
|
||||
a := []rune(s)
|
||||
if (a[0] >= 'A' && a[0] <= 'Z') || (a[0] >= 'a' && a[0] <= 'z') {
|
||||
return Key{r: a[0]}
|
||||
}
|
||||
}
|
||||
if val, ok := m[s]; ok {
|
||||
return Key{k: val}
|
||||
}
|
||||
return Key{}
|
||||
}
|
||||
15
go.mod
15
go.mod
@@ -4,9 +4,11 @@ go 1.19
|
||||
|
||||
require (
|
||||
github.com/aditya-K2/utils v0.0.0-20230324221547-e982ed1e980e
|
||||
github.com/fsnotify/fsnotify v1.6.0
|
||||
github.com/gdamore/tcell/v2 v2.5.3
|
||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
||||
github.com/rivo/tview v0.0.0-20230104153304-892d1a2eb0da
|
||||
github.com/spf13/viper v1.15.0
|
||||
github.com/zmb3/spotify/v2 v2.3.1
|
||||
gitlab.com/diamondburned/ueberzug-go v0.0.0-20190521043425-7c15a5f63b06
|
||||
golang.org/x/oauth2 v0.4.0
|
||||
@@ -19,13 +21,24 @@ require (
|
||||
github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect
|
||||
github.com/gdamore/encoding v1.0.0 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.13 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.6 // indirect
|
||||
github.com/rivo/uniseg v0.4.2 // indirect
|
||||
github.com/spf13/afero v1.9.3 // indirect
|
||||
github.com/spf13/cast v1.5.0 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/subosito/gotenv v1.4.2 // indirect
|
||||
golang.org/x/net v0.5.0 // indirect
|
||||
golang.org/x/sys v0.4.0 // indirect
|
||||
golang.org/x/term v0.4.0 // indirect
|
||||
golang.org/x/text v0.6.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
google.golang.org/protobuf v1.28.1 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
121
go.sum
121
go.sum
@@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
|
||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
||||
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
|
||||
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
|
||||
@@ -13,6 +14,9 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV
|
||||
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
|
||||
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
|
||||
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
@@ -30,6 +34,7 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
|
||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
github.com/BurntSushi/freetype-go v0.0.0-20160129220410-b763ddbfe298 h1:1qlsVAQJXZHsaM8b6OLVo6muQUQd4CwkH/D3fnnbHXA=
|
||||
github.com/BurntSushi/freetype-go v0.0.0-20160129220410-b763ddbfe298/go.mod h1:D+QujdIlUNfa0igpNMk6UIvlb6C252URs4yupRUV4lQ=
|
||||
@@ -50,12 +55,20 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
|
||||
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
||||
github.com/gdamore/tcell/v2 v2.5.3 h1:b9XQrT6QGbgI7JvZOJXFNczOQeIYbo8BfeSMzt2sAV0=
|
||||
@@ -87,6 +100,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
@@ -99,10 +113,13 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
@@ -110,24 +127,43 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf
|
||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
|
||||
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
|
||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
||||
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
|
||||
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
@@ -137,13 +173,34 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
|
||||
github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8=
|
||||
github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
|
||||
github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk=
|
||||
github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
|
||||
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
|
||||
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU=
|
||||
github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
|
||||
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/zmb3/spotify/v2 v2.3.1 h1:aEyIPotROM3JJjHMCImFROgnPIUpzVo8wymYSaPSd9w=
|
||||
github.com/zmb3/spotify/v2 v2.3.1/go.mod h1:+LVh9CafHu7SedyqYmEf12Rd01dIVlEL845yNhksW0E=
|
||||
gitlab.com/diamondburned/ueberzug-go v0.0.0-20190521043425-7c15a5f63b06 h1:lGu8YGHgq9ABb00JDQewrqhKIvku+/1uFsnq/QUeiU8=
|
||||
@@ -153,11 +210,14 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -180,6 +240,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
|
||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||
@@ -188,6 +249,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
|
||||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -214,6 +277,11 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/
|
||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
|
||||
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
||||
@@ -222,6 +290,10 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210810183815-faf39c7919d5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
|
||||
golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
|
||||
@@ -233,6 +305,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -258,9 +332,18 @@ golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220318055525-2edf467146b5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
@@ -272,6 +355,7 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
|
||||
@@ -319,6 +403,13 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY
|
||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -339,6 +430,9 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
|
||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
|
||||
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
|
||||
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
@@ -376,6 +470,13 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
@@ -388,6 +489,10 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
|
||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
|
||||
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
@@ -401,14 +506,18 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
|
||||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
||||
2
main.go
2
main.go
@@ -1,11 +1,13 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/aditya-K2/gspt/config"
|
||||
"github.com/aditya-K2/gspt/spt"
|
||||
"github.com/aditya-K2/gspt/ui"
|
||||
)
|
||||
|
||||
func main() {
|
||||
config.ReadConfig()
|
||||
if err := spt.InitClient(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
38
ui/app.go
38
ui/app.go
@@ -3,6 +3,7 @@ package ui
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/aditya-K2/gspt/config"
|
||||
"github.com/gdamore/tcell/v2"
|
||||
"github.com/rivo/tview"
|
||||
)
|
||||
@@ -17,17 +18,32 @@ var (
|
||||
)
|
||||
|
||||
var (
|
||||
TrackStyle = tcell.StyleDefault.Foreground(tcell.ColorBlue).Background(tcell.ColorBlack)
|
||||
AlbumStyle = tcell.StyleDefault.Foreground(tcell.ColorGreen).Background(tcell.ColorBlack)
|
||||
ArtistStyle = tcell.StyleDefault.Foreground(tcell.ColorPink).Background(tcell.ColorBlack)
|
||||
TimeStyle = tcell.StyleDefault.Foreground(tcell.ColorOrange).Background(tcell.ColorBlack)
|
||||
GenreStyle = tcell.StyleDefault.Foreground(tcell.ColorPaleTurquoise).Background(tcell.ColorBlack)
|
||||
PlaylistNavStyle = tcell.StyleDefault.Foreground(tcell.ColorCoral).Background(tcell.ColorBlack)
|
||||
NavStyle = tcell.StyleDefault.Foreground(tcell.ColorPapayaWhip).Background(tcell.ColorBlack)
|
||||
ContextMenuStyle = tcell.StyleDefault.Foreground(tcell.ColorPink).Background(tcell.ColorDefault).Bold(true)
|
||||
NotSelectableStyle = tcell.StyleDefault.Foreground(tcell.ColorWhite).Background(tcell.ColorDefault).Bold(true).Italic(true)
|
||||
TrackStyle tcell.Style
|
||||
AlbumStyle tcell.Style
|
||||
ArtistStyle tcell.Style
|
||||
TimeStyle tcell.Style
|
||||
GenreStyle tcell.Style
|
||||
PlaylistNavStyle tcell.Style
|
||||
NavStyle tcell.Style
|
||||
ContextMenuStyle tcell.Style
|
||||
NotSelectableStyle tcell.Style
|
||||
)
|
||||
|
||||
func loadStyles() {
|
||||
TrackStyle = config.Config.Colors.Track.Style()
|
||||
AlbumStyle = config.Config.Colors.Album.Style()
|
||||
ArtistStyle = config.Config.Colors.Artist.Style()
|
||||
TimeStyle = config.Config.Colors.Timestamp.Style()
|
||||
GenreStyle = config.Config.Colors.Genre.Style()
|
||||
PlaylistNavStyle = config.Config.Colors.PlaylistNav.Style()
|
||||
NavStyle = config.Config.Colors.Nav.Style()
|
||||
ContextMenuStyle = config.Config.Colors.ContextMenu.Style()
|
||||
NotSelectableStyle = config.Config.Colors.Null.Style()
|
||||
if Ui != nil {
|
||||
Ui.CoverArt.RefreshState()
|
||||
}
|
||||
}
|
||||
|
||||
type Application struct {
|
||||
App *tview.Application
|
||||
CoverArt *CoverArt
|
||||
@@ -291,6 +307,10 @@ func NewApplication() *Application {
|
||||
}
|
||||
return e
|
||||
})
|
||||
|
||||
loadStyles()
|
||||
config.OnConfigChange = loadStyles
|
||||
|
||||
Ui = &Application{
|
||||
App: App,
|
||||
Main: Main,
|
||||
|
||||
18
ui/cover.go
18
ui/cover.go
@@ -5,6 +5,7 @@ import (
|
||||
"image"
|
||||
"os"
|
||||
|
||||
"github.com/aditya-K2/gspt/config"
|
||||
"github.com/aditya-K2/utils"
|
||||
"github.com/gdamore/tcell/v2"
|
||||
"github.com/nfnt/resize"
|
||||
@@ -13,13 +14,6 @@ import (
|
||||
"gitlab.com/diamondburned/ueberzug-go"
|
||||
)
|
||||
|
||||
var (
|
||||
ax = 5
|
||||
ay = 10
|
||||
ex = -0.47
|
||||
ey = -1.5
|
||||
)
|
||||
|
||||
type CoverArt struct {
|
||||
*tview.Box
|
||||
image *ueberzug.Image
|
||||
@@ -45,8 +39,8 @@ func getImg(uri string) (image.Image, error) {
|
||||
}
|
||||
fw, fh := utils.GetFontWidth()
|
||||
img = resize.Resize(
|
||||
uint(float32(ImgW)*(fw+float32(ex))),
|
||||
uint(float32(ImgH)*(fh+float32(ey))),
|
||||
uint(float32(ImgW)*(fw+float32(config.Config.ExtraImageWidthX))),
|
||||
uint(float32(ImgH)*(fh+float32(config.Config.ExtraImageWidthY))),
|
||||
img,
|
||||
resize.Bilinear,
|
||||
)
|
||||
@@ -54,7 +48,7 @@ func getImg(uri string) (image.Image, error) {
|
||||
}
|
||||
|
||||
func fileName(a spotify.SimpleAlbum) string {
|
||||
return fmt.Sprintf("%s.jpg", a.ID)
|
||||
return fmt.Sprintf(config.Config.CacheDir+"/%s.jpg", a.ID)
|
||||
}
|
||||
|
||||
func (c *CoverArt) RefreshState() {
|
||||
@@ -97,8 +91,8 @@ func (c *CoverArt) RefreshState() {
|
||||
return
|
||||
}
|
||||
im, err := ueberzug.NewImage(uimg,
|
||||
int(float32(ImgX)*fw)+ax,
|
||||
int(float32(ImgY)*fh)+ay)
|
||||
int(float32(ImgX)*fw)+config.Config.AdditionalPaddingX,
|
||||
int(float32(ImgY)*fh)+config.Config.AdditionalPaddingY)
|
||||
if err != nil {
|
||||
SendNotification(fmt.Sprintf("Error Rendering Image: %s", err.Error()))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user