# -*- coding: utf-8 -*- # # Copyright 2012 - 2013 Raphaƫl Beamonte # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # For the avoidance of doubt the "preferred form" of this code is one which # is in an open unpatent encumbered format. Where cryptographic key signing # forms part of the process of creating an executable the information # including keys needed to generate an equivalently functional executable # are deemed to be part of the source code. # import os import os.path pathSave={} def getcmdpath(which): """ getcmdpath is a method which allows finding an executable in the PATH directories to call it from full path """ if not pathSave.has_key(which): for path in os.environ['PATH'].split(':'): cmdfile = os.path.join(path, which) if os.path.isfile(cmdfile) and os.access(cmdfile, os.X_OK): pathSave[which] = cmdfile break if not pathSave[which]: raise RuntimeError, "Command '%s' is unknown on this system" % which return pathSave[which]