diff --git a/.appveyor.yml b/.appveyor.yml index 411b7eb126..082b026888 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -5,6 +5,15 @@ clone_depth: 5 cache: - .build-cache + - node_modules -> .appveyor.yml + +install: + - ps: Install-Product node 7 + - node --version + - npm --version + - appveyor-retry npm install --no-optional rapydscript-ng regenerator uglify-js + - set PATH=node_modules\.bin;%PATH% + - rapydscript --version environment: SW: C:\sw diff --git a/setup/win-ci.py b/setup/win-ci.py index 09b4c25e0f..9813d9c330 100644 --- a/setup/win-ci.py +++ b/setup/win-ci.py @@ -184,7 +184,7 @@ def sw(): def sanitize_path(): needed_paths = [] - executables = 'git.exe curl.exe'.split() + executables = 'git.exe curl.exe rapydscript.cmd node.exe'.split() for p in os.environ['PATH'].split(os.pathsep): for x in tuple(executables): if os.path.exists(os.path.join(p, x)): @@ -195,6 +195,7 @@ def sanitize_path(): sw ).split() + needed_paths os.environ[b'PATH'] = os.pathsep.join(paths).encode('ascii') + print('PATH:', os.environ[b'PATH']) def vcenv(): diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index 8c7d5dc3be..6d18173a8f 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -93,13 +93,13 @@ def shorten_components_to(length, components, more_to_take=0, last_has_extension def find_executable_in_path(name, path=None): if path is None: path = os.environ.get('PATH', '') - if iswindows and not name.endswith('.exe'): - name += '.exe' + exts = '.exe .cmd .bat'.split() if iswindows and not name.endswith('.exe') else ('',) path = path.split(os.pathsep) for x in path: - q = os.path.abspath(os.path.join(x, name)) - if os.access(q, os.X_OK): - return q + for ext in exts: + q = os.path.abspath(os.path.join(x, name)) + ext + if os.access(q, os.X_OK): + return q def is_case_sensitive(path):