Documentation
¶
Overview ¶
Package helper is a set common helper functions
Package helper is a set common helper functions ¶
Package helper is a set common helper functions ¶
Package helper is a set common helper functions
Index ¶
- Constants
- Variables
- func CleanFileName(src string) string
- func CleanFilePath(src string) string
- func DeepCopy(src interface{}, dst interface{}) error
- func DirStat(dirPath string) (fs.FileInfo, error)
- func ErrorFmt(format string, msg ...any) error
- func ErrorFmtL(lang, format string, msg ...any) error
- func ErrorNew(msg ...any) error
- func ErrorNewL(lang string, msg ...any) error
- func FileStat(filePath string) (fs.FileInfo, error)
- func FileToUtf8(filePath string, encodingName string) (string, error)
- func Fmt(format string, msg ...any) string
- func FmtL(lang, format string, msg ...any) string
- func FromJson(srcJson []byte, dst interface{}) (bool, error)
- func FromJsonFile(jsonPath string, dst interface{}) (bool, error)
- func FromUnderscoreTimeStamp(src string) string
- func Gcd(src []int) int
- func Gcd2(a, b int) int
- func IniSectionList(eaIni []IniEntry) []string
- func IsDir(dirPath string) (bool, error)
- func IsDirExist(dirPath string) bool
- func IsFileExist(filePath string) bool
- func IsTimeStamp(src string) bool
- func IsUnderscoreTimeStamp(src string) bool
- func LT(src string) string
- func LTL(lang, src string) string
- func MakeDateTime(t time.Time) string
- func MakeTimeStamp(t time.Time) string
- func Msg(msg ...any) string
- func MsgL(lang string, msg ...any) string
- func MsgNoLT(msg ...any) string
- func PackZip(srcPath string, isCleanDstDir bool, dstDir string) (string, error)
- func ParseCsvLine(src string, comma rune) []string
- func ParseKeyValue(src string) (map[string]string, error)
- func QuoteForIni(src string) string
- func SaveTo(outPath string, rd io.Reader) error
- func SetMsg(userLang string, msgIni []IniEntry) (string, []string)
- func ToAlphaNumeric(src string) string
- func ToIntValue(src interface{}) (int, bool)
- func ToJsonFile(jsonPath string, src interface{}) error
- func ToJsonIndent(src interface{}) (string, error)
- func ToJsonIndentFile(jsonPath string, src interface{}) error
- func ToUnderscoreTimeStamp(src string) string
- func UnQuote(src string) string
- func UnpackZip(zipPath string, isCleanDstDir bool, dstDir string) error
- func Utf8Reader(f *os.File, encodingName string) (io.Reader, error)
- type IniEntry
- func AddIniEntry(isUpdate bool, eaIni []IniEntry, section, key, val string) []IniEntry
- func InsertIniEntry(eaIni []IniEntry, section, key, val string) []IniEntry
- func MergeIniEntry(eaIni []IniEntry, section, key, val string) []IniEntry
- func MergeSectionKeyIniEntry(eaIni []IniEntry, sectionKey, val string) []IniEntry
Constants ¶
const InvalidFileNameChars = "\"'`:*?><|$}{@&^;%/\\" // invalid or dangerous file name or URL characters
const InvalidFilePathChars = "\"'`:*?><|$}{@&^;%" // invalid or dangerous file path or URL characters
const TimeStampLength = len("2012_08_17_16_04_59_123") // length of timestap string
Variables ¶
var ( Utf8bom = []byte{0xEF, 0xBB, 0xBF} Utf16LEbom = []byte{0xFF, 0xFE} Utf16BEbom = []byte{0xFE, 0xFF} Utf32LEbom = []byte{0xFF, 0xFE, 0x00, 0x00} Utf32BEbom = []byte{0x00, 0x00, 0xFE, 0xFF} )
byte order mark bytes
Functions ¶
func CleanFileName ¶ added in v1.17.3
replace special file name characters: "'`:*?><|$}{@&^;/\ by _ underscore
func CleanFilePath ¶ added in v1.17.4
replace special file name characters: "'`:*?><|$}{@&^; by _ underscore
func DeepCopy ¶
func DeepCopy(src interface{}, dst interface{}) error
DeepCopy using gob to make a deep copy from src into dst, both src and dst expected to be a pointers
func FileToUtf8 ¶
FileToUtf8 read file content and convert it to UTF-8 string.
If file starts with BOM (utf-8 utf-16LE utf-16BE utf-32LE utf-32BE) then BOM is used. If no BOM and encodingName is "" empty then file content probed to see is it already utf-8. If encodingName explicitly specified then it is used to convert file content to string. If none of above then assume default encoding: "windows-1252" on Windows and "utf-8" on Linux.
func Fmt ¶ added in v1.17.10
return string formatted by Sprintf translate format string using message.ini content, use language specific printer instead of fmt by default
func FmtL ¶ added in v1.17.10
return string formatted by Sprintf translate format string using message.ini content, use language specific printer instead of fmt by default
func FromJsonFile ¶
FromJsonFile reads read from json file and convert to destination pointer.
func FromUnderscoreTimeStamp ¶ added in v1.11.0
FromUnderscoreTimeStamp converts timestamp string to date-time string: 2021_07_16_13_40_53_882 into 2021-07-16 13:40:53.882 If source string is not a date-time string then return empty "" string
func IniSectionList ¶ added in v1.17.10
return ini-file sections
func IsDir ¶ added in v1.17.10
return true if path exists and it is directory, return false if path not exists, return error if path is not a directory or not accessible
func IsDirExist ¶ added in v1.17.0
return true if path exists and it is directory, return false if path is not a directory or not accessible
func IsFileExist ¶ added in v1.17.10
fileExist return error if file not exist, not accessible or it is not a regular file
func IsTimeStamp ¶ added in v1.13.0
IsTimeStamp return true if src is timestamp string: 2021-07-16 13:40:53.882
func IsUnderscoreTimeStamp ¶ added in v1.11.0
IsUnderscoreTimeStamp return true if src is underscore timestamp string: 2021_07_16_13_40_53_882
func LT ¶ added in v1.17.10
return translated string, if translation not found then retrun source string
func LTL ¶ added in v1.17.10
return translated string, if translation not found then retrun source string
func MakeDateTime ¶
MakeDateTime return date-time string, ie: 2012-08-17 16:04:59.148
func MakeTimeStamp ¶
MakeTimeStamp return timestamp string as: 2012_08_17_16_04_59_148
func Msg ¶ added in v1.17.10
Join items by space, use Sprint for each item, translate first msg[0] item using message.ini content, use language specific printer instead of fmt by default
func MsgL ¶ added in v1.17.10
Join items by space, use Sprint for each item, translate first msg[0] item using message.ini content, use language specific printer instead of fmt by default
func MsgNoLT ¶ added in v1.17.10
Join msg items by space this function should NOT use anything from message store
func PackZip ¶
PackZip create new (overwrite) zip archive from specified file or directory and all subdirs. If dstDir is "" empty then result located in source base directory.
func ParseCsvLine ¶ added in v1.15.2
ParseCsvLine comma separated string: " value ", value, ' value '. Value can be empty and can be escaped with "double" or 'single' quotes. If comma is zero rune then , comma used by default.
func ParseKeyValue ¶
ParseKeyValue string of multiple key = value; pairs separated by semicolon. Key cannot be empty, value can be. Value can be escaped with "double" or 'single' quotes
func QuoteForIni ¶ added in v1.15.6
Escape src value for ini-file writing: add 'single' or "double" quotes around if src contains ; semicolon or # hash.
func SaveTo ¶ added in v1.9.7
SaveTo copy all from source reader into new outPath file. File truncated if already exists.
func ToAlphaNumeric ¶
ToAlphaNumeric replace all non [A-Z,a-z,0-9] by _ underscore and remove repetitive underscores
func ToIntValue ¶ added in v1.9.8
ToIntValue cast src to int if it not nil and type is one of integer or float types. Return int value and true on success or 0 and false if src is nil or invalid type.
func ToJsonFile ¶
ToJsonFile convert source to json and write into jsonPath file.
func ToJsonIndent ¶
ToJsonIndent return source conveted to json indeneted string.
func ToJsonIndentFile ¶ added in v1.10.0
ToJsonIndentFile convert source to json and write into jsonPath file.
func ToUnderscoreTimeStamp ¶ added in v1.11.0
ToUnderscoreTimeStamp converts date-time string to timestamp string: 2021-07-16 13:40:53.882 into 2021_07_16_13_40_53_882 If source string is not a date-time string then return empty "" string
func UnpackZip ¶
UnpackZip unpack zip archive into specified directory, creating it if not exist. If dstDir is "" empty then result located in source base directory.
func Utf8Reader ¶
Utf8Reader return a reader to transform file content to utf-8.
If file starts with BOM (utf-8 utf-16LE utf-16BE utf-32LE utf-32BE) then BOM is used. If no BOM and encodingName is "" empty then file content probed to see is it already utf-8. If encodingName explicitly specified then it is used to convert file content to string. If none of above then assume default encoding: "windows-1252" on Windows and "utf-8" on Linux.
Types ¶
type IniEntry ¶ added in v1.17.10
type IniEntry struct { Section string // section: in lower case, without [], space trimed Key string // key: in lower case, without =, space trimed Val string // value: space trimed and unquoted ("quotes" or 'apostrophes' removed) }
Ini-file entry: section, key and value
func AddIniEntry ¶ added in v1.17.10
Insert new or update existing ini file entry: search by (section, key) in source []IniEntry if not found then insert new entry if found and isUpdate true then update existing entry with new value
func InsertIniEntry ¶ added in v1.17.10
Insert new ini file entry if not already exists: search by (section, key) in source []IniEntry if not found then insert new entry
func MergeIniEntry ¶ added in v1.17.10
Update existing or insert new ini file entry: search by (section, key) in source []IniEntry if not found then insert new entry if found then update existing entry with new value
func MergeSectionKeyIniEntry ¶ added in v1.17.10
Update existing or insert new ini file entry: sectionKey expected to be: section.key if not then exit and do nothing. find section and key in source []IniEntry if not found then insert new entry if found then update existing entry with new value