Refactor file time handling and add USE_MODTIME flag
This commit is contained in:
49
main.go
49
main.go
@@ -124,12 +124,22 @@ func scanArchive() {
|
||||
func processFile(path string, info os.FileInfo) {
|
||||
var now = time.Now().UnixMilli()
|
||||
|
||||
var fileATime int64 = times.Get(info).AccessTime().UnixMilli()
|
||||
// var fileATime int64 = times.Get(info).ModTime().UnixMilli()
|
||||
var accessTimeDelta = now - fileATime
|
||||
log.Printf("File %s last accessed at %d, %dms ago\n", path, fileATime, accessTimeDelta)
|
||||
if accessTimeDelta > constants.ARCHIVE_THRESHOLD {
|
||||
log.Printf("File %s was accessed more than %dms ago, archiving...\n", path, constants.ARCHIVE_THRESHOLD)
|
||||
var timeType = "accessed"
|
||||
if constants.USE_MODTIME {
|
||||
timeType = "modified"
|
||||
}
|
||||
|
||||
var fileTime int64 = 0
|
||||
if constants.USE_MODTIME {
|
||||
fileTime = times.Get(info).ModTime().UnixMilli()
|
||||
} else {
|
||||
fileTime = times.Get(info).AccessTime().UnixMilli()
|
||||
}
|
||||
|
||||
var timeDelta = now - fileTime
|
||||
log.Printf("File %s last %s at %d, %dms ago\n", path, timeType, fileTime, timeDelta)
|
||||
if timeDelta > constants.ARCHIVE_THRESHOLD {
|
||||
log.Printf("File %s was %s more than %dms ago, archiving...\n", path, timeType, constants.ARCHIVE_THRESHOLD)
|
||||
archiveFile(path)
|
||||
}
|
||||
}
|
||||
@@ -137,12 +147,23 @@ func processFile(path string, info os.FileInfo) {
|
||||
func processArchiveFile(path string, info os.FileInfo) {
|
||||
var now = time.Now().UnixMilli()
|
||||
|
||||
var fileATime int64 = times.Get(info).AccessTime().UnixMilli()
|
||||
// var fileATime int64 = times.Get(info).ModTime().UnixMilli()
|
||||
var accessTimeDelta = now - fileATime
|
||||
log.Printf("File %s last accessed at %d, %dms ago\n", path, fileATime, accessTimeDelta)
|
||||
if accessTimeDelta > constants.DELETE_THRESHOLD {
|
||||
log.Printf("File %s was accessed more than %dms ago, deleting...\n", path, constants.DELETE_THRESHOLD)
|
||||
var timeType = "accessed"
|
||||
if constants.USE_MODTIME {
|
||||
timeType = "modified"
|
||||
}
|
||||
|
||||
var fileTime int64 = 0
|
||||
if constants.USE_MODTIME {
|
||||
fileTime = times.Get(info).ModTime().UnixMilli()
|
||||
} else {
|
||||
fileTime = times.Get(info).AccessTime().UnixMilli()
|
||||
}
|
||||
|
||||
var timeDelta = now - int64(fileTime)
|
||||
log.Printf("File %s last %s at %d, %dms ago\n", path, timeType, fileTime, timeDelta)
|
||||
|
||||
if timeDelta > constants.DELETE_THRESHOLD {
|
||||
log.Printf("File %s was %s more than %dms ago, deleting...\n", path, timeType, constants.DELETE_THRESHOLD)
|
||||
deleteFile(path)
|
||||
}
|
||||
}
|
||||
@@ -224,6 +245,7 @@ type Constants struct {
|
||||
ARCHIVE_THRESHOLD int64
|
||||
DELETE_THRESHOLD int64
|
||||
SCAN_INTERVAL time.Duration
|
||||
USE_MODTIME bool
|
||||
}
|
||||
|
||||
func doRun() {
|
||||
@@ -261,6 +283,7 @@ func main() {
|
||||
var ARCHIVE_THRESHOLD = parseDuration(getEnv("ARCHIVE_THRESHOLD", "1d"))
|
||||
var DELETE_THRESHOLD = parseDuration(getEnv("DELETE_THRESHOLD", "12h"))
|
||||
var SCAN_INTERVAL = time.Duration(parseDuration(getEnv("SCAN_INTERVAL", "1m")) * 1e6)
|
||||
var USE_MODTIME = strings.TrimSpace(getEnv("USE_MODTIME", "false")) == "true"
|
||||
|
||||
constants.ROOT = ROOT
|
||||
constants.ROOT_ARCHIVE = ROOT_ARCHIVE
|
||||
@@ -268,6 +291,7 @@ func main() {
|
||||
constants.ARCHIVE_THRESHOLD = ARCHIVE_THRESHOLD
|
||||
constants.DELETE_THRESHOLD = DELETE_THRESHOLD
|
||||
constants.SCAN_INTERVAL = SCAN_INTERVAL
|
||||
constants.USE_MODTIME = USE_MODTIME
|
||||
|
||||
log.Println("Input args parsed as:")
|
||||
log.Printf("ROOT: %s\n", ROOT)
|
||||
@@ -276,6 +300,7 @@ func main() {
|
||||
log.Printf("ARCHIVE_THRESHOLD: %d\n", ARCHIVE_THRESHOLD)
|
||||
log.Printf("DELETE_THRESHOLD: %d\n", DELETE_THRESHOLD)
|
||||
log.Printf("SCAN_INTERVAL: %d\n", SCAN_INTERVAL.Milliseconds())
|
||||
log.Printf("USE_MODTIME: %s\n", strconv.FormatBool(USE_MODTIME))
|
||||
|
||||
doRun()
|
||||
for {
|
||||
|
Reference in New Issue
Block a user