Hello,

I'm proposing a new directory structure. This basically splits the
"commands" into a "command" part and a "module" part. Please see below
for what I think should go where.

The major benefit is a more reusable code.

   1.

      The current implementation of "pyinstaller.py" already shows the
      limits of the current "command"-based layout: Commands are
      imported as modules, lots of code is duplicated.

   2.

      The commands are missing a common "definition area", e.g. for
      directory structures. HOMEPATH is defined in Configure, Makespec,
      Build and pyinstaller.

   3. The makespec_ng branch is working on a more enhanced .spec file.
      Moving this further, one could imaging dropping "Build.py" and
      converting the .spec-files into scripts. And even further one
      could imagine a PyInstaller "tool" for the Scons build system
      (www.scons.org).

Positive side-effects are some code cleanup and easier rpm/deb packaging
of "PyInstaller".

Negative side-effects: non known

Risks: none, since code is primary moved to a new location.

What do you think about this?

New dir structure
----------------------

Keep unchanged:
 ArchiveViewer.py
 GrabVersion.py
 MakeComServer.py
 MakeCOMServer_old.py
 McGUI.py
 pyinstaller.py

Split into script and module, since pyinstaller.py imports them
 Build.py       ./Build.py + PyInstaller/build.py
 Configure.py   ./Configure.py + PyInstaller/configure.py
 Makespec.py    ./Makespec.py + PyInstaller/makespec.py
 Crypt.py       ./Crypt.py + PyInstaller/crypt.py

Move into PyInstaller/ (module)
 archive.py      PyInstaller/archive.py
 bindepend.py    PyInstaller/bindepend.py # is script-part still required?
 carchive.py     PyInstaller/carchive.py
 hooks           ./hooks/
 icon.py         PyInstaller/icon.py       # script-part is irrelevant
 iu.py           PyInstaller/iu.py
 mf.py           PyInstaller/mf.py
 pefile.py       PyInstaller/pefile.py
 pyi_optparse.py PyInstaller/optparse.py
 pyi_optik       PyInstaller/optik/
 suffixes.py     PyInstaller/suffixes.py
 versionInfo.py  PyInstaller/versionInfo.py
 winmanifest.py  PyInstaller/winmanifest.py # script-part is irrelevant
 winresource.py  PyInstaller/winresource.py

-- 
Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP, CSSLP

Goebel Consult 
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de

Monatliche Kolumne: http://www.cissp-gefluester.de/
Goebel Consult mit Mitglied bei http://www.7-it.de

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to