qvm-device: handle 'list-device-classes' and 'list-classes'
QubesOS/qubes-issues#5213
This commit is contained in:
		
							parent
							
								
									3dce4e9742
								
							
						
					
					
						commit
						41c6fbed72
					
				
							
								
								
									
										1
									
								
								qubesadmin/qubesadmin
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								qubesadmin/qubesadmin
									
									
									
									
									
										Symbolic link
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/home/user/qubes-builder/qubes-src/core-admin-client/qubesadmin
 | 
				
			||||||
@ -263,6 +263,9 @@ def get_parser(device_class=None):
 | 
				
			|||||||
    attach_parser.set_defaults(func=attach_device)
 | 
					    attach_parser.set_defaults(func=attach_device)
 | 
				
			||||||
    detach_parser.set_defaults(func=detach_device)
 | 
					    detach_parser.set_defaults(func=detach_device)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parser.add_argument('--list-device-classes', action='store_true',
 | 
				
			||||||
 | 
					                        default=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return parser
 | 
					    return parser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -272,7 +275,13 @@ def main(args=None, app=None):
 | 
				
			|||||||
    devclass = None
 | 
					    devclass = None
 | 
				
			||||||
    if basename.startswith('qvm-') and basename != 'qvm-device':
 | 
					    if basename.startswith('qvm-') and basename != 'qvm-device':
 | 
				
			||||||
        devclass = basename[4:]
 | 
					        devclass = basename[4:]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    args = get_parser(devclass).parse_args(args, app=app)
 | 
					    args = get_parser(devclass).parse_args(args, app=app)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if args.list_device_classes:
 | 
				
			||||||
 | 
					        print('\n'.join(qubesadmin.Qubes().list_deviceclass()))
 | 
				
			||||||
 | 
					        return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        args.func(args)
 | 
					        args.func(args)
 | 
				
			||||||
    except qubesadmin.exc.QubesException as e:
 | 
					    except qubesadmin.exc.QubesException as e:
 | 
				
			||||||
@ -282,4 +291,10 @@ def main(args=None, app=None):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    # Special treatment for '--list-device-classes' (alias --list-classes)
 | 
				
			||||||
 | 
					    curr_action = sys.argv[1:]
 | 
				
			||||||
 | 
					    if set(curr_action).intersection(
 | 
				
			||||||
 | 
					            {'--list-device-classes', '--list-classes'}):
 | 
				
			||||||
 | 
					        sys.exit(main(args=['', '--list-device-classes']))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sys.exit(main())
 | 
					    sys.exit(main())
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user