Fixes stat to give more information for symlinks

master
sloum 2 years ago
parent a848d649b0
commit b3c9f5eee1

@ -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
},

Loading…
Cancel
Save