|
|
@@ -36,10 +36,12 @@ def main():
|
|
|
g = sub.add_parser('get', help='HTTP GET')
|
|
|
g.add_argument('path', help='API path,如 /projects')
|
|
|
g.add_argument('-p', action='append', default=[], metavar='k=v', help='query 参数(可多次)')
|
|
|
+ g.add_argument('-o', dest='output', default=None, metavar='FILE', help='写 JSON 到文件(不打 stdout)')
|
|
|
|
|
|
p = sub.add_parser('post', help='HTTP POST')
|
|
|
p.add_argument('path')
|
|
|
p.add_argument('-j', dest='body', default=None, metavar='JSON', help='JSON body')
|
|
|
+ p.add_argument('-o', dest='output', default=None, metavar='FILE', help='写 JSON 到文件(不打 stdout)')
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
client = DSClient()
|
|
|
@@ -50,7 +52,14 @@ def main():
|
|
|
body = json.loads(args.body) if args.body else None
|
|
|
result = client.post(args.path, json_body=body)
|
|
|
|
|
|
- print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
|
+ text = json.dumps(result, ensure_ascii=False, indent=2)
|
|
|
+ if args.output:
|
|
|
+ with open(args.output, 'w', encoding='utf-8') as f:
|
|
|
+ f.write(text)
|
|
|
+ f.write('\n')
|
|
|
+ sys.stderr.write('[ds.cli] 已写到 {}\n'.format(args.output))
|
|
|
+ else:
|
|
|
+ print(text)
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|