Restructure go project (#2356)

* Move main to cmd
* Move api to internal
* Move logger and manager to internal
* Move shell hiding code to separate package
* Decouple job from desktop and utils
* Decouple session from config
* Move static into internal
* Decouple config from dlna
* Move desktop to internal
* Move dlna to internal
* Decouple remaining packages from config
* Move config into internal
* Move jsonschema and paths to models
* Make ffmpeg functions private
* Move file utility methods into fsutil package
* Move symwalk into fsutil
* Move single-use util functions into client package
* Move slice functions to separate packages
* Add env var to suppress windowsgui arg
* Move hash functions into separate package
* Move identify to internal
* Move autotag to internal
* Touch UI when generating backend
This commit is contained in:
WithoutPants
2022-03-17 11:33:59 +11:00
committed by GitHub
parent dcee874f59
commit f69bd8a94f
334 changed files with 1845 additions and 1525 deletions

View File

@@ -2,41 +2,9 @@ package utils
import (
"fmt"
"math/rand"
"strings"
"time"
"unicode"
)
var characters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
func RandomSequence(n int) string {
b := make([]rune, n)
rand.Seed(time.Now().UnixNano())
for i := range b {
b[i] = characters[rand.Intn(len(characters))]
}
return string(b)
}
// FlipCaseSingle flips the case ( lower<->upper ) of a single char from the string s
// If the string cannot be flipped, the original string value and an error are returned
func FlipCaseSingle(s string) (string, error) {
rr := []rune(s)
for i, r := range rr {
if unicode.IsLetter(r) { // look for a letter to flip
if unicode.IsUpper(r) {
rr[i] = unicode.ToLower(r)
return string(rr), nil
}
rr[i] = unicode.ToUpper(r)
return string(rr), nil
}
}
return s, fmt.Errorf("could not case flip string %s", s)
}
type StrFormatMap map[string]interface{}
// StrFormat formats the provided format string, replacing placeholders