(root)/
util-linux-2.39/
libmount/
python/
test_mount_tab_update.py
       1  import os
       2  import sys
       3  import stat
       4  import errno
       5  
       6  # use "import libmount" for in a standard way installed python binding
       7  import pylibmount as mnt
       8  
       9  def usage(tss):
      10  	print("\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0]))
      11  	for i in tss:
      12  		print("\t{15:-s}".format(i[0]))
      13  		if i[2] != "":
      14  			print(" {:s}\n".format(i[2]))
      15  
      16  	print("\n")
      17  	return 1
      18  
      19  def mnt_run_test(tss, argv):
      20  	rc = -1
      21  	if ((len(argv) < 2) or (argv[1] == "--help") or (argv[1] == "-h")):
      22  		return usage(tss)
      23  
      24  	#mnt_init_debug(0)
      25  
      26  	i=()
      27  	for i in tss:
      28  		if i[0] == argv[1]:
      29  			rc = i[1](i, argv[1:])
      30  			if rc:
      31  				print("FAILED [rc={:d}]".format(rc))
      32  			break
      33  
      34  	if ((rc < 0) and (i == ())):
      35  		return usage(tss)
      36  	return not not rc #because !!rc is too mainstream for python
      37  
      38  def test_replace(ts, argv):
      39  	fs = mnt.Fs()
      40  	tb = mnt.Table()
      41  
      42  	if (len(argv) < 3):
      43  		return -1
      44  	tb.enable_comments(True)
      45  	tb.parse_fstab()
      46  
      47  	fs.source = argv[1]
      48  	fs.target = argv[2]
      49  	#TODO: resolve None + string
      50  	fs.comment = "# this is new filesystem\n"
      51  	tb.add_fs(fs)
      52  	tb.replace_file(os.environ["LIBMOUNT_FSTAB"])
      53  	return 0
      54  
      55  tss = (
      56  	( "--replace",test_replace, "<src> <target>                Add a line to LIBMOUNT_FSTAB and replace the original file" ),
      57  )
      58  
      59  sys.exit(mnt_run_test(tss, sys.argv))