null+****@clear*****
null+****@clear*****
2012年 4月 27日 (金) 18:41:35 JST
Kouhei Sutou 2012-04-27 18:41:35 +0900 (Fri, 27 Apr 2012) New Revision: 57d51bb1b7ffece3da6c0be21579692190619e8e Log: doc: pretty print execution examples Modified files: doc/update_execution_example.py Modified: doc/update_execution_example.py (+21 -5) =================================================================== --- doc/update_execution_example.py 2012-04-27 18:21:05 +0900 (740a22c) +++ doc/update_execution_example.py 2012-04-27 18:41:35 +0900 (adfff6e) @@ -7,6 +7,8 @@ from sys import argv,stdout import os import os.path import shutil +import re +import json DB_DIRECTORY = "/tmp/groonga-databases" DEFAULT_DB_NAME = "tutorial.db" @@ -43,17 +45,31 @@ def execmd(command, fout): groonga_process.stdin.flush() if fout: fout.write(formatted_command_line + " ") + output_buffer = "" while True: out = select([groonga_process.stdout], [], [], 0.2) if len(out[0]): char = groonga_process.stdout.read(1) - if char != None: - stdout.write(char) + if char is None: + stdout.write(output_buffer) if fout: - if char == '\n': - fout.write(char + " ") + fout.write(output_buffer) + else: + output_buffer += char + if char == '\n': + if len(output_buffer) < 80: + formatted_output = output_buffer else: - fout.write(char) + parsed_output = json.loads(output_buffer) + formatted_output = json.dumps(parsed_output, + indent=2, + ensure_ascii=False) + formatted_output += "\n" + formatted_output = formatted_output.encode("utf-8") + stdout.write(formatted_output) + if fout: + fout.write(re.sub("\n", "\n ", formatted_output)) + output_buffer = "" else: stdout.flush() break