mirror of
https://github.com/xiaoqidun/goini.git
synced 2026-09-03 08:10:22 +08:00
style(代码风格): 精简内部实现,优化方法组织
This commit is contained in:
1 file changed
+37
-40
+37
-40
@@ -145,42 +145,6 @@ func hasSurroundingQuotes(value string) bool {
|
|||||||
return first == last && (first == '"' || first == '\'' || first == '`')
|
return first == last && (first == '"' || first == '\'' || first == '`')
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ini *GoINI) save(data string) error {
|
|
||||||
if ini.filename == "" {
|
|
||||||
return errFilenameRequired
|
|
||||||
}
|
|
||||||
info, err := os.Stat(ini.filename)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return ini.saveFile(ini.filename, data, info.Mode().Perm())
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ini *GoINI) saveFile(filename string, data string, perm os.FileMode) error {
|
|
||||||
if filename == "" {
|
|
||||||
return errFilenameRequired
|
|
||||||
}
|
|
||||||
perm = perm.Perm()
|
|
||||||
writePerm := perm | 0o200
|
|
||||||
if info, err := os.Stat(filename); err == nil {
|
|
||||||
if info.Mode().IsRegular() {
|
|
||||||
if err := os.Chmod(filename, writePerm); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if !errors.Is(err, os.ErrNotExist) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := os.WriteFile(filename, []byte(data), writePerm); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := os.Chmod(filename, perm); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
ini.filename = filename
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ini *GoINI) rebuildIndexes() {
|
func (ini *GoINI) rebuildIndexes() {
|
||||||
ini.sectionKeys = make(map[string][]string)
|
ini.sectionKeys = make(map[string][]string)
|
||||||
ini.sectionOrder = nil
|
ini.sectionOrder = nil
|
||||||
@@ -245,9 +209,6 @@ func (ini *GoINI) findSectionLineIndex(sectionName string) (int, bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ini *GoINI) findSectionKeyLineIndex(sectionName string, keyName string) (int, bool) {
|
func (ini *GoINI) findSectionKeyLineIndex(sectionName string, keyName string) (int, bool) {
|
||||||
if ini.sectionKeyLineIndexes[sectionName] == nil {
|
|
||||||
return 0, false
|
|
||||||
}
|
|
||||||
index, ok := ini.sectionKeyLineIndexes[sectionName][keyName]
|
index, ok := ini.sectionKeyLineIndexes[sectionName][keyName]
|
||||||
return index, ok
|
return index, ok
|
||||||
}
|
}
|
||||||
@@ -375,7 +336,7 @@ func commentLines(comment string) []iniLine {
|
|||||||
|
|
||||||
func formatComment(comment string) string {
|
func formatComment(comment string) string {
|
||||||
trimmed := strings.TrimLeftFunc(comment, unicode.IsSpace)
|
trimmed := strings.TrimLeftFunc(comment, unicode.IsSpace)
|
||||||
if strings.HasPrefix(trimmed, "#") || strings.HasPrefix(trimmed, ";") {
|
if isComment(trimmed) {
|
||||||
return comment
|
return comment
|
||||||
}
|
}
|
||||||
if comment == "" {
|
if comment == "" {
|
||||||
@@ -469,6 +430,42 @@ func formatINIComment(comment string) string {
|
|||||||
return "# " + comment
|
return "# " + comment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ini *GoINI) save(data string) error {
|
||||||
|
if ini.filename == "" {
|
||||||
|
return errFilenameRequired
|
||||||
|
}
|
||||||
|
info, err := os.Stat(ini.filename)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return ini.saveFile(ini.filename, data, info.Mode().Perm())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ini *GoINI) saveFile(filename string, data string, perm os.FileMode) error {
|
||||||
|
if filename == "" {
|
||||||
|
return errFilenameRequired
|
||||||
|
}
|
||||||
|
perm = perm.Perm()
|
||||||
|
writePerm := perm | 0o200
|
||||||
|
if info, err := os.Stat(filename); err == nil {
|
||||||
|
if info.Mode().IsRegular() {
|
||||||
|
if err := os.Chmod(filename, writePerm); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if !errors.Is(err, os.ErrNotExist) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := os.WriteFile(filename, []byte(data), writePerm); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := os.Chmod(filename, perm); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
ini.filename = filename
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func matchStrings(items []string, match string) []string {
|
func matchStrings(items []string, match string) []string {
|
||||||
if match == "" {
|
if match == "" {
|
||||||
return cloneStrings(items)
|
return cloneStrings(items)
|
||||||
|
|||||||
Reference in New Issue
Block a user