repo_description: simple terminal UI for git commands
repo_topics: cli git terminal
code: package theme
  
  import (
  	"github.com/gookit/color"
  	"github.com/jesseduffield/lazygit/pkg/gui/style"
  	"github.com/jesseduffield/lazygit/pkg/utils"
  )
  
  func GetTextStyle(keys []string, background bool) style.TextStyle {
  	s := style.New()
  
  	for _, key := range keys {
  		switch key {
  		case "bold":
  			s = s.SetBold()
  		case "reverse":
  			s = s.SetReverse()
  		case "underline":
  			s = s.SetUnderline()
  		case "strikethrough":
  			s = s.SetStrikethrough()
  		default:
  			value, present := style.ColorMap[key]
  			if present {
  				var c style.TextStyle
  				if background {
  					c = value.Background
  				} else {
  					c = value.Foreground
  				}
  				s = s.MergeStyle(c)
  			} else if utils.IsValidHexValue(key) {
  				c := style.NewRGBColor(color.HEX(key, background))
  				if background {
  					s = s.SetBg(c)
  				} else {
  					s = s.SetFg(c)
  				}
  			}
  		}
  	}
  
  	return s
  }
  