mirror of
https://git.codelinaro.org/clo/tools/repo.git
synced 2025-05-20 13:56:17 +08:00
Port os.rename calls to work on Windows
os.rename fails on Windows if the destination exists, so replace os.rename to platform_utils.rename which handles the platform differences. Change-Id: I15a86f10f65eedee5b003b80f88a0c28a3e1aa48
This commit is contained in:

committed by
David Pursehouse

parent
a65adf74f9
commit
ad1abcb556
@ -13,6 +13,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import errno
|
||||
import os
|
||||
import platform
|
||||
import select
|
||||
@ -225,3 +226,19 @@ def handle_rmtree_error(function, path, excinfo):
|
||||
# Allow deleting read-only files
|
||||
os.chmod(path, stat.S_IWRITE)
|
||||
function(path)
|
||||
|
||||
|
||||
def rename(src, dst):
|
||||
if isWindows():
|
||||
# On Windows, rename fails if destination exists, see
|
||||
# https://docs.python.org/2/library/os.html#os.rename
|
||||
try:
|
||||
os.rename(src, dst)
|
||||
except OSError as e:
|
||||
if e.errno == errno.EEXIST:
|
||||
os.remove(dst)
|
||||
os.rename(src, dst)
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
os.rename(src, dst)
|
||||
|
Reference in New Issue
Block a user