瀏覽代碼

Fix bug when no third-party packages are needed

Thomas Kluyver 11 年之前
父節點
當前提交
07a3a0b131
共有 2 個文件被更改,包括 10 次插入4 次删除
  1. 4 3
      nsist/__init__.py
  2. 6 1
      nsist/copymodules.py

+ 4 - 3
nsist/__init__.py

@@ -98,7 +98,7 @@ def write_nsis_file(nsi_file, definitions, extra_files):
                     
 
 def run_nsis(nsi_file):
-    call(['makensis', nsi_file])
+    return call(['makensis', nsi_file])
 
 def all_steps(appname, version, script, icon=DEFAULT_ICON, console=False,
                 packages=None, extra_files=None, py_version=DEFAULT_PY_VERSION,
@@ -135,9 +135,10 @@ def all_steps(appname, version, script, icon=DEFAULT_ICON, console=False,
                    'PY_EXE': 'py' if console else 'pyw',
                   }
     write_nsis_file(nsi_file, definitions, extra_files_copied)
-    run_nsis(nsi_file)
+    exitcode = run_nsis(nsi_file)
     
-    logger.info('Installer written to %s', pjoin(build_dir, installer_name))
+    if not exitcode:
+        logger.info('Installer written to %s', pjoin(build_dir, installer_name))
 
 def main(argv=None):
     logger.setLevel(logging.INFO)

+ 6 - 1
nsist/copymodules.py

@@ -49,4 +49,9 @@ def copy_modules(modnames, target, path=None):
         if modname in files_in_target_noext:
             # Already there, no need to copy it.
             continue
-        mc.copy(modname, target)
+        mc.copy(modname, target)
+    
+    if not modnames:
+        # NSIS abhors an empty folder, so give it a file to find.
+        with open(os.path.join(target, 'placeholder'), 'w') as f:
+            f.write('This file only exists so NSIS finds something in this directory.')