sshrimp/cmd/sshrimp-agent/logrotate.go
2023-05-24 17:40:52 -07:00

26 lines
515 B
Go

package main
import (
"fmt"
"os"
"path/filepath"
"strings"
)
func logRotate(path string, count int) {
if _, err := os.Stat(path); err == nil {
ext := filepath.Ext(path)
base := strings.TrimSuffix(path, ext)
for i := count - 1; i >= 1; i-- {
source := fmt.Sprintf("%s.%d%s", base, i, ext)
dest := fmt.Sprintf("%s.%d%s", base, i+1, ext)
_ = os.Remove(dest)
_ = os.Rename(source, dest)
}
dest := fmt.Sprintf("%s.%d%s", base, 1, ext)
_ = os.Remove(dest)
_ = os.Rename(path, dest)
}
}