path.lua
local path = require 'lsh.path'
local p = path('/etc')
print(p.path)
local p2 = p:join('resolv.conf')
print(p2.name)
print(p2.parent)
assert(p2.stem == 'resolv')
assert(p2.suffix == '.conf')
assert((p2:exists()))
local p3 = p2.parent
print(p3)
local p4 = p3.parent
print(p4)
local ok, err = p:chdir()
print(ok,err)
local pd = path(os.tmpname())
pd:unlink() pd = pd:join('dir') local ok, err = pd:mkdir(nil, true) print(ok, err)
print(pd)
pd:rmdir()
print(pd.parent)
local ok, err = pd.parent:rmdir()
print(ok, err)
assert(not pd:exists())
assert(not pd:is_dir())
do assert(path('resolv.conf').stem == 'resolv')
assert(path('lib.tar.gar').stem == 'lib.tar')
assert(path('lib.tar').stem == 'lib')
assert(path('lib').stem == 'lib')
assert(path('/home/user/lib').stem == 'lib')
end
do assert(path('/bla/z').parent == path('/bla'))
assert(path('bla').parent == path('.'))
assert(path('/bla').parent == path('/'))
end
do local p = path('/usr/local/bin/lua')
assert(p.parents[1] == path('/usr/local/bin'))
assert(p.parents[2] == path('/usr/local'))
assert(p.parents[3] == path('/usr'))
assert(p.parents[4] == path('/'))
p = path('dev/test')
assert(p.parents[1] == path('dev'))
end
do local p = path('/etc/passwd')
assert(p:relative_to('/') == path('etc/passwd'))
assert(p:relative_to('/etc') == path('passwd'))
assert(p:relative_to('/etc/passwd') == path())
assert(not p:relative_to('/usr'))
assert(not p:relative_to('/etc/passwd/bla'))
end