Add safeguards to avoid bad usage.
This commit is contained in:
		
							
								
								
									
										2
									
								
								TODO.md
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								TODO.md
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
# To-Do List
 | 
					# To-Do List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [ ] Add more safeguards to avoid bad usage.
 | 
					- [X] Add more safeguards to avoid bad usage.
 | 
				
			||||||
- [ ] Create a man page.
 | 
					- [ ] Create a man page.
 | 
				
			||||||
- [ ] Add more documentation to `help` subcommand.
 | 
					- [ ] Add more documentation to `help` subcommand.
 | 
				
			||||||
- [ ] Add import/export functionality.
 | 
					- [ ] Add import/export functionality.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/main.cpp
									
									
									
									
									
								
							@@ -39,39 +39,63 @@ int main(int argc, char *argv[]) {
 | 
				
			|||||||
	try {
 | 
						try {
 | 
				
			||||||
		switch(id) {
 | 
							switch(id) {
 | 
				
			||||||
		case CMD_ADD:
 | 
							case CMD_ADD:
 | 
				
			||||||
 | 
								if(argc not_eq 2)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_add();
 | 
								ret = cmd_add();
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_DEL:
 | 
							case CMD_DEL:
 | 
				
			||||||
 | 
								if(argc not_eq 3)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_delete(argc - 2, argv + 2);
 | 
								ret = cmd_delete(argc - 2, argv + 2);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_LIST:
 | 
							case CMD_LIST:
 | 
				
			||||||
 | 
								if(argc > 6)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_list(argc - 1, argv + 1);
 | 
								ret = cmd_list(argc - 1, argv + 1);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_INFO:
 | 
							case CMD_INFO:
 | 
				
			||||||
 | 
								if(argc not_eq 3)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_info(std::stoi(argv[2]));
 | 
								ret = cmd_info(std::stoi(argv[2]));
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_EDIT_NAME:
 | 
							case CMD_EDIT_NAME:
 | 
				
			||||||
 | 
								if(argc not_eq 3)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_edit_name(std::stoi(argv[2]));
 | 
								ret = cmd_edit_name(std::stoi(argv[2]));
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_EDIT_DESC:
 | 
							case CMD_EDIT_DESC:
 | 
				
			||||||
 | 
								if(argc not_eq 3)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_edit_desc(std::stoi(argv[2]));
 | 
								ret = cmd_edit_desc(std::stoi(argv[2]));
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_ADD_INGR:
 | 
							case CMD_ADD_INGR:
 | 
				
			||||||
 | 
								if(argc not_eq 4)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_add_ingr(std::stoi(argv[2]), argv[3]);
 | 
								ret = cmd_add_ingr(std::stoi(argv[2]), argv[3]);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_RM_INGR:
 | 
							case CMD_RM_INGR:
 | 
				
			||||||
 | 
								if(argc not_eq 4)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_rm_ingr(std::stoi(argv[2]), argv[3]);
 | 
								ret = cmd_rm_ingr(std::stoi(argv[2]), argv[3]);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_ADD_TAG:
 | 
							case CMD_ADD_TAG:
 | 
				
			||||||
 | 
								if(argc not_eq 4)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_add_tag(std::stoi(argv[2]), argv[3]);
 | 
								ret = cmd_add_tag(std::stoi(argv[2]), argv[3]);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_RM_TAG:
 | 
							case CMD_RM_TAG:
 | 
				
			||||||
 | 
								if(argc not_eq 4)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			ret = cmd_rm_tag(std::stoi(argv[2]), argv[3]);
 | 
								ret = cmd_rm_tag(std::stoi(argv[2]), argv[3]);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_HELP:
 | 
							case CMD_HELP:
 | 
				
			||||||
 | 
								if(argc not_eq 2)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			print_help();
 | 
								print_help();
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case CMD_VERSION:
 | 
							case CMD_VERSION:
 | 
				
			||||||
 | 
								if(argc not_eq 2)
 | 
				
			||||||
 | 
									throw "Invalid number of arguments. Use 'help' subcommand for more information.";
 | 
				
			||||||
			print_version();
 | 
								print_version();
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user