package util import ( e "codeberg.org/pebbe/errors" "fmt" "os" "path/filepath" "regexp" "strings" ) var ( p = e.PanicErr reEOL = regexp.MustCompile(`[.!?]['"”’]?$`) ) func AddEnd(s string) string { s = strings.TrimSpace(s) if s == "" { return "" } if reEOL.MatchString(s) { return s + "\n" } return s + ".\n" } func FixSpace(s string) string { return strings.Join(strings.Fields(s), " ") } func MkLock(filename string) { pid := os.Getpid() link := fmt.Sprintf("%s.%d", filepath.Base(filename), pid) p(os.Symlink(link, filename)) name, err := os.Readlink(filename) p(err) if name != link { p(fmt.Errorf("wrong lock name %q, should be %q", name, link)) } }