mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-10-31 17:04:14 +10:00 
			
		
		
		
	I was intending to make all the Netlink Spec code BSD-3-Clause to ease the adoption but it appears that: - I fumbled the uAPI and used "GPL WITH uAPI note" there - it gives people pause as they expect GPL in the kernel As suggested by Chuck re-license under dual. This gives us benefit of full BSD freedom while fulfilling the broad "kernel is under GPL" expectations. Link: https://lore.kernel.org/all/20230304120108.05dd44c5@kernel.org/ Link: https://lore.kernel.org/r/20230306200457.3903854-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| # SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 | |
| 
 | |
| import argparse
 | |
| import json
 | |
| import pprint
 | |
| import time
 | |
| 
 | |
| from lib import YnlFamily
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(description='YNL CLI sample')
 | |
|     parser.add_argument('--spec', dest='spec', type=str, required=True)
 | |
|     parser.add_argument('--schema', dest='schema', type=str)
 | |
|     parser.add_argument('--no-schema', action='store_true')
 | |
|     parser.add_argument('--json', dest='json_text', type=str)
 | |
|     parser.add_argument('--do', dest='do', type=str)
 | |
|     parser.add_argument('--dump', dest='dump', type=str)
 | |
|     parser.add_argument('--sleep', dest='sleep', type=int)
 | |
|     parser.add_argument('--subscribe', dest='ntf', type=str)
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     if args.no_schema:
 | |
|         args.schema = ''
 | |
| 
 | |
|     attrs = {}
 | |
|     if args.json_text:
 | |
|         attrs = json.loads(args.json_text)
 | |
| 
 | |
|     ynl = YnlFamily(args.spec, args.schema)
 | |
| 
 | |
|     if args.ntf:
 | |
|         ynl.ntf_subscribe(args.ntf)
 | |
| 
 | |
|     if args.sleep:
 | |
|         time.sleep(args.sleep)
 | |
| 
 | |
|     if args.do:
 | |
|         reply = ynl.do(args.do, attrs)
 | |
|         pprint.PrettyPrinter().pprint(reply)
 | |
|     if args.dump:
 | |
|         reply = ynl.dump(args.dump, attrs)
 | |
|         pprint.PrettyPrinter().pprint(reply)
 | |
| 
 | |
|     if args.ntf:
 | |
|         ynl.check_ntf()
 | |
|         pprint.PrettyPrinter().pprint(ynl.async_msg_queue)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |