pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/system/user_linux.go (about)

     1  package system
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     6  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"syscall"
    12  	"time"
    13  )
    14  
    15  // ////////////////////////////////////////////////////////////////////////////////// //
    16  
    17  // getTimes is copy of fsutil.GetTimes
    18  func getTimes(path string) (time.Time, time.Time, time.Time, error) {
    19  	if path == "" {
    20  		return time.Time{}, time.Time{}, time.Time{}, ErrEmptyPath
    21  	}
    22  
    23  	var stat = &syscall.Stat_t{}
    24  
    25  	err := syscall.Stat(path, stat)
    26  
    27  	if err != nil {
    28  		return time.Time{}, time.Time{}, time.Time{}, err
    29  	}
    30  
    31  	return time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec)),
    32  		time.Unix(int64(stat.Mtim.Sec), int64(stat.Mtim.Nsec)),
    33  		time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec)),
    34  		nil
    35  }