mirror of
https://github.com/silicoflare/envy.git
synced 2026-05-26 19:57:59 +05:30
45 lines
801 B
Go
45 lines
801 B
Go
package utils
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"os"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/charmbracelet/lipgloss"
|
|
)
|
|
|
|
var ErrStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#F00"))
|
|
|
|
func ErrPrint(data ...string) {
|
|
fmt.Println(ErrStyle.Render(strings.Join(data, " ")))
|
|
}
|
|
|
|
var EnvyPath string
|
|
|
|
func Init() {
|
|
conf, err := os.UserConfigDir()
|
|
if err != nil {
|
|
panic("Couldn't find config directory:" + err.Error())
|
|
}
|
|
|
|
EnvyPath = path.Join(conf, "envy")
|
|
}
|
|
|
|
func NoSpace(input string) error {
|
|
for _, r := range input {
|
|
if !(isAlphaNum(r) || r == '-' || r == '_') {
|
|
return errors.New("input can only contain letters, numbers, '-' and '_'")
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// helper function
|
|
func isAlphaNum(r rune) bool {
|
|
return (r >= 'a' && r <= 'z') ||
|
|
(r >= 'A' && r <= 'Z') ||
|
|
(r >= '0' && r <= '9')
|
|
}
|