1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
package main
import (
"os"
"time"
)
func touch(paths []string, noCreate bool) {
if len(paths) == 0 {
fatalWithUsage()
}
paths, nn, err := normalizePaths(paths)
if err != nil {
fatal(err)
}
client, err := getClient(nn)
if err != nil {
fatal(err)
}
for _, p := range paths {
if hasGlob(p) {
fatal(&os.PathError{"mkdir", p, os.ErrNotExist})
}
_, err := client.Stat(p)
exists := !os.IsNotExist(err)
if (err != nil && exists) || (!exists && noCreate) {
fatal(err)
}
if exists {
now := time.Now()
mtime := now
atime := now
err = client.Chtimes(p, mtime, atime)
} else {
err = client.CreateEmptyFile(p)
}
if err != nil {
fatal(err)
}
}
}
|