|
|
|
@ -1417,12 +1417,25 @@ var stdLibrary = vars{
|
|
|
|
|
if err != nil {
|
|
|
|
|
return exception("'file-stat' could not stat file: " + err.Error())
|
|
|
|
|
}
|
|
|
|
|
out := make([]expression, 5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
out := make([]expression, 7)
|
|
|
|
|
out[0] = []expression{"name", info.Name()}
|
|
|
|
|
out[1] = []expression{"size", number(info.Size())}
|
|
|
|
|
out[2] = []expression{"mode", number(info.Mode())}
|
|
|
|
|
out[3] = []expression{"mod-time", number(info.ModTime().Unix())}
|
|
|
|
|
out[4] = []expression{"is-dir?", info.IsDir()}
|
|
|
|
|
out[5] = []expression{"is-symlink?", false}
|
|
|
|
|
out[6] = []expression{"path", fp}
|
|
|
|
|
|
|
|
|
|
ln, err := os.Readlink(fp)
|
|
|
|
|
if err == nil {
|
|
|
|
|
out[5] = []expression{"is-symlink?", true}
|
|
|
|
|
if !filepath.IsAbs(ln) {
|
|
|
|
|
ln = ExpandedAbsFilepath(filepath.Join(filepath.Dir(fp), ln))
|
|
|
|
|
}
|
|
|
|
|
out[6] = []expression{"path", ln}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return out
|
|
|
|
|
},
|
|
|
|
|