def gui_socket_address(): global ADDRESS if ADDRESS is None: if iswindows: ADDRESS = r'\\.\pipe\CalibreGUI' try: user = get_windows_username() except: user = None if user: from calibre.utils.filenames import ascii_filename user = ascii_filename(user).replace(' ', '_') if user: ADDRESS += '-' + user[:100] + 'x' else: user = os.environ.get('USER', '') if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: ADDRESS = (u'\0%s-calibre-gui.socket' % user).encode('ascii') else: from tempfile import gettempdir tmp = gettempdir() ADDRESS = os.path.join(tmp, user+'-calibre-gui.socket') return ADDRESS
def viewer_socket_address(): global VADDRESS if VADDRESS is None: if iswindows: VADDRESS = r'\\.\pipe\CalibreViewer' try: user = get_windows_username() except: user = None if user: user = ascii_filename(user).replace(' ', '_') if user: VADDRESS += '-' + user[:100] + 'x' else: user = os.environ.get('USER', '') if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: VADDRESS = ( '\0%s-calibre-viewer.socket' % ascii_filename(force_unicode(user))).encode('ascii') else: from tempfile import gettempdir tmp = gettempdir() VADDRESS = os.path.join(tmp, user + '-calibre-viewer.socket') return VADDRESS
def gui_socket_address(): global ADDRESS if ADDRESS is None: if iswindows: ADDRESS = r'\\.\pipe\CalibreGUI' try: user = get_windows_username() except: user = None if user: from calibre.utils.filenames import ascii_filename user = ascii_filename(user).replace(' ', '_') if user: ADDRESS += '-' + user[:100] + 'x' else: user = os.environ.get('USER', '') if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: ADDRESS = (u'\0%s-calibre-gui.socket' % user).encode('ascii') else: from tempfile import gettempdir tmp = gettempdir() ADDRESS = os.path.join(tmp, user + '-calibre-gui.socket') return ADDRESS
def viewer_socket_address(): if viewer_socket_address.ans is None: if iswindows: viewer_socket_address.ans = r'\\.\pipe\CalibreViewer' try: user = get_windows_username() except: user = None if user: user = ascii_filename(user).replace(' ', '_') if user: viewer_socket_address.ans += '-' + user[:100] + 'x' else: user = os.environ.get('USER', '') if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: viewer_socket_address.ans = (u'\0%s-calibre-viewer.socket' % ascii_filename(force_unicode(user))) else: from tempfile import gettempdir tmp = gettempdir() viewer_socket_address.ans = os.path.join(tmp, user+'-calibre-viewer.socket') if not ispy3 and not isinstance(viewer_socket_address.ans, bytes): viewer_socket_address.ans = viewer_socket_address.ans.encode(filesystem_encoding) return viewer_socket_address.ans
def socket_address(which): if iswindows: ans = r'\\.\pipe\Calibre' + which try: user = get_windows_username() except Exception: user = None if user: user = ascii_filename(user).replace(' ', '_') if user: ans += '-' + user[:100] + 'x' else: user = force_unicode( os.environ.get('USER') or os.path.basename(os.path.expanduser('~')), filesystem_encoding) sock_name = '{}-calibre-{}.socket'.format( ascii_filename(user).replace(' ', '_'), which) if islinux: ans = '\0' + sock_name else: from tempfile import gettempdir tmp = force_unicode(gettempdir(), filesystem_encoding) ans = os.path.join(tmp, sock_name) if not ispy3 and not isinstance(ans, bytes): ans = ans.encode(filesystem_encoding) return ans
def viewer_socket_address(): if viewer_socket_address.ans is None: if iswindows: viewer_socket_address.ans = r'\\.\pipe\CalibreViewer' try: user = get_windows_username() except: user = None if user: user = ascii_filename(user).replace(' ', '_') if user: viewer_socket_address.ans += '-' + user[:100] + 'x' else: user = os.environ.get('USER', '') if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: viewer_socket_address.ans = ( u'\0%s-calibre-viewer.socket' % ascii_filename(force_unicode(user))) else: from tempfile import gettempdir tmp = gettempdir() viewer_socket_address.ans = os.path.join( tmp, user + '-calibre-viewer.socket') if not ispy3 and not isinstance(viewer_socket_address.ans, bytes): viewer_socket_address.ans = viewer_socket_address.ans.encode( filesystem_encoding) return viewer_socket_address.ans
def create_single_instance_mutex(name, per_user=True): mutexname = '{}-singleinstance-{}-{}'.format( __appname__, (get_windows_username() if per_user else ''), name) try: mutex = winutil.create_mutex(mutexname, False) except FileExistsError: return return mutex.close
def create_single_instance_mutex(name, per_user=True): mutexname = '{}-singleinstance-{}-{}'.format( __appname__, (get_windows_username() if per_user else ''), name) mutex = win32event.CreateMutex(None, False, mutexname) if not mutex: return err = win32api.GetLastError() if err == winerror.ERROR_ALREADY_EXISTS: # Close this handle other wise this handle will prevent the mutex # from being deleted when the process that created it exits. win32api.CloseHandle(mutex) return return partial(win32api.CloseHandle, mutex)
def create_single_instance_mutex(name, per_user=True): mutexname = '{}-singleinstance-{}-{}'.format( __appname__, (get_windows_username() if per_user else ''), name ) mutex = win32event.CreateMutex(None, False, mutexname) if not mutex: return err = win32api.GetLastError() if err == winerror.ERROR_ALREADY_EXISTS: # Close this handle other wise this handle will prevent the mutex # from being deleted when the process that created it exits. win32api.CloseHandle(mutex) return return partial(win32api.CloseHandle, mutex)