📄 mpdexit.py
字号:
#!/usr/bin/env python## (C) 2001 by Argonne National Laboratory.# See COPYRIGHT in top-level directory.#"""usage: mpdexit mpdid mpdid may be obtained via mpdtrace -l (or may be "localmpd")Causes a single mpd to exit (and thus exit the ring).Note that this may cause other mpds to become 'isolated' if theyentered the ring through the exiting one."""from time import ctime__author__ = "Ralph Butler and Rusty Lusk"__date__ = ctime()__version__ = "$Revision: 1.15 $"__credits__ = ""import sys, os, signalfrom mpdlib import mpd_set_my_id, mpd_uncaught_except_tb, mpd_print, \ mpd_handle_signal, mpd_get_my_username, \ MPDConClientSock, MPDParmDBdef mpdexit(): import sys # to get access to excepthook in next line sys.excepthook = mpd_uncaught_except_tb if (len(sys.argv) > 1 and (sys.argv[1] == '-h' or sys.argv[1] == '--help')) or \ (len(sys.argv) < 2): print __doc__ sys.exit(-1) signal.signal(signal.SIGINT, sig_handler) mpd_set_my_id(myid='mpdexit') parmdb = MPDParmDB(orderedSources=['cmdline','xml','env','rcfile','thispgm']) parmsToOverride = { 'MPD_USE_ROOT_MPD' : 0, 'MPD_SECRETWORD' : '', } for (k,v) in parmsToOverride.items(): parmdb[('thispgm',k)] = v parmdb.get_parms_from_env(parmsToOverride) parmdb.get_parms_from_rcfile(parmsToOverride) if (hasattr(os,'getuid') and os.getuid() == 0) or parmdb['MPD_USE_ROOT_MPD']: fullDirName = os.path.abspath(os.path.split(sys.argv[0])[0]) # normalize mpdroot = os.path.join(fullDirName,'mpdroot') conSock = MPDConClientSock(mpdroot=mpdroot,secretword=parmdb['MPD_SECRETWORD']) else: conSock = MPDConClientSock(secretword=parmdb['MPD_SECRETWORD']) msgToSend = { 'cmd' : 'mpdexit', 'mpdid' : sys.argv[1] } conSock.send_dict_msg(msgToSend) msg = conSock.recv_dict_msg(timeout=5.0) if not msg: mpd_print(1,'no msg recvd from mpd before timeout') sys.exit(-1) elif msg['cmd'] == 'already_have_a_console': mpd_print(1,'mpd already has a console (e.g. for long ringtest); try later') sys.exit(-1) if not msg.has_key('cmd'): mpd_print(1,'mpdexit: INVALID msg=:%s:' % (msg)) sys.exit(-1) if msg['cmd'] != 'mpdexit_ack': mpd_print(1,'mpdexit failed; may have wrong mpdid') sys.exit(-1)def sig_handler(signum,frame): mpd_handle_signal(signum,frame) # not nec since I exit next sys.exit(-1)def usage(): print __doc__ sys.exit(-1)if __name__ == '__main__': mpdexit()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -