2013-08-19 08:11:06 -05:00
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import stat
|
|
|
|
import errno
|
2014-01-14 10:34:08 -06:00
|
|
|
|
|
|
|
# use "import libmount" for in a standard way installed python binding
|
|
|
|
import pylibmount as mnt
|
2013-08-19 08:11:06 -05:00
|
|
|
|
|
|
|
def usage(tss):
|
2013-08-29 07:57:04 -05:00
|
|
|
print("\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0]))
|
2013-08-19 08:11:06 -05:00
|
|
|
for i in tss:
|
2013-08-29 07:57:04 -05:00
|
|
|
print("\t{15:-s}".format(i[0]))
|
2013-08-19 08:11:06 -05:00
|
|
|
if i[2] != "":
|
2013-08-29 07:57:04 -05:00
|
|
|
print(" {:s}\n".format(i[2]))
|
2013-08-19 08:11:06 -05:00
|
|
|
|
|
|
|
print("\n")
|
|
|
|
return 1
|
|
|
|
|
|
|
|
def mnt_run_test(tss, argv):
|
|
|
|
rc = -1
|
|
|
|
if ((len(argv) < 2) or (argv[1] == "--help") or (argv[1] == "-h")):
|
|
|
|
return usage(tss)
|
|
|
|
|
|
|
|
#mnt_init_debug(0)
|
|
|
|
|
|
|
|
i=()
|
|
|
|
for i in tss:
|
|
|
|
if i[0] == argv[1]:
|
|
|
|
rc = i[1](i, argv[1:])
|
|
|
|
if rc:
|
2013-08-29 07:57:04 -05:00
|
|
|
print("FAILED [rc={:d}]".format(rc))
|
2013-08-19 08:11:06 -05:00
|
|
|
break
|
|
|
|
|
|
|
|
if ((rc < 0) and (i == ())):
|
|
|
|
return usage(tss)
|
|
|
|
return not not rc #because !!rc is too mainstream for python
|
|
|
|
|
|
|
|
def test_replace(ts, argv):
|
|
|
|
fs = mnt.Fs()
|
2013-08-19 10:10:07 -05:00
|
|
|
tb = mnt.Table()
|
2013-08-19 08:11:06 -05:00
|
|
|
|
|
|
|
if (len(argv) < 3):
|
|
|
|
return -1
|
|
|
|
tb.enable_comments(True)
|
|
|
|
tb.parse_fstab()
|
|
|
|
|
|
|
|
fs.source = argv[1]
|
|
|
|
fs.target = argv[2]
|
|
|
|
#TODO: resolve None + string
|
|
|
|
fs.comment = "# this is new filesystem\n"
|
|
|
|
tb.add_fs(fs)
|
|
|
|
tb.replace_file(os.environ["LIBMOUNT_FSTAB"])
|
|
|
|
return 0
|
|
|
|
|
|
|
|
tss = (
|
|
|
|
( "--replace",test_replace, "<src> <target> Add a line to LIBMOUNT_FSTAB and replace the original file" ),
|
|
|
|
)
|
|
|
|
|
|
|
|
sys.exit(mnt_run_test(tss, sys.argv))
|