mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #8232 from aarlt/cmdline-standard-json-from-file
Add support for reading standard-json from file
This commit is contained in:
		
						commit
						e635121bad
					
				| @ -750,7 +750,7 @@ Allowed options)", | |||||||
| 		( | 		( | ||||||
| 			g_argStandardJSON.c_str(), | 			g_argStandardJSON.c_str(), | ||||||
| 			"Switch to Standard JSON input / output mode, ignoring all options. " | 			"Switch to Standard JSON input / output mode, ignoring all options. " | ||||||
| 			"It reads from standard input and provides the result on the standard output." | 			"It reads from standard input, if no input file was given, otherwise it reads from the provided input file. The result will be written to standard output." | ||||||
| 		) | 		) | ||||||
| 		( | 		( | ||||||
| 			g_argImportAst.c_str(), | 			g_argImportAst.c_str(), | ||||||
| @ -965,7 +965,22 @@ bool CommandLineInterface::processInput() | |||||||
| 
 | 
 | ||||||
| 	if (m_args.count(g_argStandardJSON)) | 	if (m_args.count(g_argStandardJSON)) | ||||||
| 	{ | 	{ | ||||||
| 		string input = readStandardInput(); | 		vector<string> inputFiles; | ||||||
|  | 		string jsonFile; | ||||||
|  | 		if (m_args.count(g_argInputFile)) | ||||||
|  | 			inputFiles = m_args[g_argInputFile].as<vector<string>>(); | ||||||
|  | 		if (inputFiles.size() == 1) | ||||||
|  | 			jsonFile = inputFiles[0]; | ||||||
|  | 		else if (inputFiles.size() > 1) | ||||||
|  | 		{ | ||||||
|  | 			serr() << "If --" << g_argStandardJSON << " is used, only zero or one input files are supported." << endl; | ||||||
|  | 			return false; | ||||||
|  | 		} | ||||||
|  | 		string input; | ||||||
|  | 		if (jsonFile.empty()) | ||||||
|  | 			input = readStandardInput(); | ||||||
|  | 		else | ||||||
|  | 			input = readFileAsString(jsonFile); | ||||||
| 		StandardCompiler compiler(fileReader); | 		StandardCompiler compiler(fileReader); | ||||||
| 		sout() << compiler.compile(std::move(input)) << endl; | 		sout() << compiler.compile(std::move(input)) << endl; | ||||||
| 		return true; | 		return true; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user