mirror of
https://github.com/openSUSE/osc.git
synced 2024-12-24 17:16:12 +01:00
- add "osc api --edit" option
This commit is contained in:
parent
3e57d58729
commit
bb75ce34fd
2
NEWS
2
NEWS
@ -1,5 +1,5 @@
|
|||||||
0.150
|
0.150
|
||||||
-
|
- add "osc api --edit" option to be able to edit some meta files directly
|
||||||
|
|
||||||
0.149
|
0.149
|
||||||
- removed "--diff" option from the "createrequest" command
|
- removed "--diff" option from the "createrequest" command
|
||||||
|
@ -6985,6 +6985,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
|
|
||||||
@cmdln.option('-X', '-m', '--method', default='GET', metavar='HTTP_METHOD',
|
@cmdln.option('-X', '-m', '--method', default='GET', metavar='HTTP_METHOD',
|
||||||
help='specify HTTP method to use (GET|PUT|DELETE|POST)')
|
help='specify HTTP method to use (GET|PUT|DELETE|POST)')
|
||||||
|
@cmdln.option('-e', '--edit', default=None, action='store_true',
|
||||||
|
help='GET, edit and PUT the location')
|
||||||
@cmdln.option('-d', '--data', default=None, metavar='STRING',
|
@cmdln.option('-d', '--data', default=None, metavar='STRING',
|
||||||
help='specify string data for e.g. POST')
|
help='specify string data for e.g. POST')
|
||||||
@cmdln.option('-T', '-f', '--file', default=None, metavar='FILE',
|
@cmdln.option('-T', '-f', '--file', default=None, metavar='FILE',
|
||||||
@ -7005,6 +7007,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
Examples:
|
Examples:
|
||||||
osc api /source/home:user
|
osc api /source/home:user
|
||||||
osc api -X PUT -T /etc/fstab source/home:user/test5/myfstab
|
osc api -X PUT -T /etc/fstab source/home:user/test5/myfstab
|
||||||
|
osc api -e /build/_dispatchprios
|
||||||
|
|
||||||
${cmd_usage}
|
${cmd_usage}
|
||||||
${cmd_option_list}
|
${cmd_option_list}
|
||||||
@ -7032,10 +7035,17 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
data=opts.data,
|
data=opts.data,
|
||||||
file=opts.file,
|
file=opts.file,
|
||||||
headers=opts.headers)
|
headers=opts.headers)
|
||||||
|
|
||||||
out = r.read()
|
out = r.read()
|
||||||
sys.stdout.write(out)
|
|
||||||
|
|
||||||
|
if opts.edit:
|
||||||
|
text = edit_text(out)
|
||||||
|
r = http_request("PUT",
|
||||||
|
url,
|
||||||
|
data=text,
|
||||||
|
headers=opts.headers)
|
||||||
|
out = r.read()
|
||||||
|
|
||||||
|
sys.stdout.write(out)
|
||||||
|
|
||||||
|
|
||||||
@cmdln.option('-b', '--bugowner-only', action='store_true',
|
@cmdln.option('-b', '--bugowner-only', action='store_true',
|
||||||
|
11
osc/core.py
11
osc/core.py
@ -3829,7 +3829,6 @@ def _edit_message_open_editor(filename, data, orig_mtime):
|
|||||||
return os.stat(filename).st_mtime != orig_mtime
|
return os.stat(filename).st_mtime != orig_mtime
|
||||||
|
|
||||||
def edit_message(footer='', template='', templatelen=30):
|
def edit_message(footer='', template='', templatelen=30):
|
||||||
import tempfile
|
|
||||||
delim = '--This line, and those below, will be ignored--\n'
|
delim = '--This line, and those below, will be ignored--\n'
|
||||||
data = ''
|
data = ''
|
||||||
if template != '':
|
if template != '':
|
||||||
@ -3839,13 +3838,19 @@ def edit_message(footer='', template='', templatelen=30):
|
|||||||
if lines[templatelen:]:
|
if lines[templatelen:]:
|
||||||
footer = '%s\n\n%s' % ('\n'.join(lines[templatelen:]), footer)
|
footer = '%s\n\n%s' % ('\n'.join(lines[templatelen:]), footer)
|
||||||
data += '\n' + delim + '\n' + footer
|
data += '\n' + delim + '\n' + footer
|
||||||
|
edit_text(data, delim)
|
||||||
|
|
||||||
|
def edit_text(data='', delim=None):
|
||||||
|
import tempfile
|
||||||
try:
|
try:
|
||||||
(fd, filename) = tempfile.mkstemp(prefix='osc-commitmsg', suffix='.diff')
|
(fd, filename) = tempfile.mkstemp(prefix='osc-editor', suffix='.txt')
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
mtime = os.stat(filename).st_mtime
|
mtime = os.stat(filename).st_mtime
|
||||||
while True:
|
while True:
|
||||||
file_changed = _edit_message_open_editor(filename, data, mtime)
|
file_changed = _edit_message_open_editor(filename, data, mtime)
|
||||||
msg = open(filename).read().split(delim)[0].rstrip()
|
msg = open(filename).read()
|
||||||
|
if delim:
|
||||||
|
msg = msg.split(delim)[0].rstrip()
|
||||||
if msg and file_changed:
|
if msg and file_changed:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user