From 627bb764d27288229c362c2087fedede41710bf2 Mon Sep 17 00:00:00 2001 From: "lambroslambrou@google.com" Date: Tue, 10 Jan 2012 23:19:43 +0000 Subject: Fix executable searching in keygen.py Add the script's directory to the search path, so it can be used in a standalone tarball for Virtual Me2Me. Use os.path.join() instead of string concatenation. Make the module safe to import (that is, don't search for remoting_host_keygen whilst the module is being imported, because it fails to work from tools such as pychecker etc). BUG=None TEST=Manual Review URL: http://codereview.chromium.org/9114045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117104 0039d316-1c4b-4281-b951-d872f2087c98 --- remoting/tools/keygen.py | 55 ++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'remoting/tools') diff --git a/remoting/tools/keygen.py b/remoting/tools/keygen.py index deaeae1..482aeca 100644 --- a/remoting/tools/keygen.py +++ b/remoting/tools/keygen.py @@ -1,38 +1,43 @@ -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os import sys -SCRIPT_PATH = os.path.dirname(sys.argv[0]) -if SCRIPT_PATH == "": - SCRIPT_PATH = os.getcwd() - -PATHS_TO_TRY = [ - '\\..\\..\\build\\Debug\\remoting_host_keygen.exe', - '\\..\\..\\build\\Release\\remoting_host_keygen.exe', - '\\..\\Debug\\remoting_host_keygen.exe', - '\\..\\Release\\remoting_host_keygen.exe', - '/../../xcodebuild/Debug/remoting_host_keygen', - '/../../xcodebuild/Release/remoting_host_keygen', - '/../../out/Debug/remoting_host_keygen', - '/../../out/Release/remoting_host_keygen'] - -KEYGEN_PATH = None -for path in PATHS_TO_TRY: - if os.path.exists(SCRIPT_PATH + path): - KEYGEN_PATH = SCRIPT_PATH + path - break - -if not KEYGEN_PATH: - raise Exception("Unable to find remoting_host_keygen. Please build it " + - "and try again") +_SCRIPT_PATH = os.path.dirname(sys.argv[0]) +if _SCRIPT_PATH == "": + _SCRIPT_PATH = os.getcwd() + +_EXE_PATHS_TO_TRY = [ + '.', + '..\\..\\build\\Debug', + '..\\..\\build\\Release', + '..\\Debug', + '..\\Release', + '../../xcodebuild/Debug', + '../../xcodebuild/Release', + '../../out/Debug', + '../../out/Release'] + + +def locate_executable(exe_name): + for path in _EXE_PATHS_TO_TRY: + exe_path = os.path.join(_SCRIPT_PATH, path, exe_name) + if os.path.exists(exe_path): + return exe_path + exe_path = exe_path + ".exe" + if os.path.exists(exe_path): + return exe_path + + raise Exception("Could not locate executable '%s'" % exe_name) + def generateRSAKeyPair(): """Returns (priv, pub) keypair where priv is a new private key and pub is the corresponding public key. Both keys are BASE64 encoded.""" - pipe = os.popen(KEYGEN_PATH) + keygen_path = locate_executable("remoting_host_keygen") + pipe = os.popen(keygen_path) out = pipe.readlines() if len(out) != 2: raise Exception("remoting_host_keygen failed.") -- cgit v1.1