From a1b77584f213820ee5358b3c354b8f4b9221fd5c Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Thu, 19 Jun 2003 22:35:20 +0000 Subject: [PATCH] Added a target frameworkinstallextras (OSX framework build specific, and not part of a normal frameworkinstall) that installs Demo and Tools and a readme file into /Applications/MacPython-2.3/Extras. This will give people access to the demos and tools if they instal Python through the binary installer. --- Mac/OSX/Extras.ReadMe.txt | 9 +++++++ Mac/OSX/Extras.install.py | 53 +++++++++++++++++++++++++++++++++++++++ Mac/OSX/Makefile | 8 ++++++ Makefile.pre.in | 7 ++++++ 4 files changed, 77 insertions(+) create mode 100644 Mac/OSX/Extras.ReadMe.txt create mode 100644 Mac/OSX/Extras.install.py diff --git a/Mac/OSX/Extras.ReadMe.txt b/Mac/OSX/Extras.ReadMe.txt new file mode 100644 index 00000000000..cfe55bd347e --- /dev/null +++ b/Mac/OSX/Extras.ReadMe.txt @@ -0,0 +1,9 @@ +This folder contains examples of Python usage and useful scripts and tools. + +You should be aware that these are not Macintosh-specific but are shared +among Python on all platforms, so there are some that only run on Windows +or Unix or another platform, and/or make little sense on a Macintosh. + +Some examples can be run from within the PythonIDE, but many will require +that you start them from the command line, or supply command-line arguments +by holding down the "alt" key when double-clicking them. diff --git a/Mac/OSX/Extras.install.py b/Mac/OSX/Extras.install.py new file mode 100644 index 00000000000..193990402e1 --- /dev/null +++ b/Mac/OSX/Extras.install.py @@ -0,0 +1,53 @@ +"""Recursively copy a directory but skip undesired files and +directories (CVS, backup files, pyc files, etc)""" + +import sys +import os +import shutil + +verbose = 1 +debug = 0 + +def isclean(name): + if name == 'CVS': return 0 + if name == '.cvsignore': return 0 + if name == '.DS_store': return 0 + if name.endswith('~'): return 0 + if name.endswith('.BAK'): return 0 + if name.endswith('.pyc'): return 0 + if name.endswith('.pyo'): return 0 + if name.endswith('.orig'): return 0 + return 1 + +def copycleandir(src, dst): + for cursrc, dirs, files in os.walk(src): + assert cursrc.startswith(src) + curdst = dst + cursrc[len(src):] + if verbose: + print "mkdir", curdst + if not debug: + if not os.path.exists(curdst): + os.makedirs(curdst) + for fn in files: + if isclean(fn): + if verbose: + print "copy", os.path.join(cursrc, fn), os.path.join(curdst, fn) + if not debug: + shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn)) + else: + if verbose: + print "skipfile", os.path.join(cursrc, fn) + for i in range(len(dirs)-1, -1, -1): + if not isclean(dirs[i]): + if verbose: + print "skipdir", os.path.join(cursrc, dirs[i]) + del dirs[i] + +def main(): + if len(sys.argv) != 3: + sys.stderr.write("Usage: %s srcdir dstdir\n" % sys.argv[0]) + sys.exit(1) + copycleandir(sys.argv[1], sys.argv[2]) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/Mac/OSX/Makefile b/Mac/OSX/Makefile index 5b28e022b94..62f444e70bb 100644 --- a/Mac/OSX/Makefile +++ b/Mac/OSX/Makefile @@ -243,3 +243,11 @@ installunixtools: echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh $(INSTALL) pythonw.sh $(DESTDIR)$(bindir)/pythonw$(VERSION) $(INSTALL_SYMLINK) pythonw$(VERSION) $(DESTDIR)$(bindir)/pythonw + +installextras: + $(INSTALL) -d $(DESTDIR)$(PYTHONAPPSDIR)/Extras + $(INSTALL) $(srcdir)/Mac/OSX/Extras.ReadMe.txt $(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe + $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Demo \ + $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo + $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ + $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools \ No newline at end of file diff --git a/Makefile.pre.in b/Makefile.pre.in index c6f191cc28d..01ec10aff26 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -870,6 +870,13 @@ frameworkinstallunixtools: DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) +# This installs the Demos and Tools into the applications directory. +# It is not part of a normal frameworkinstall +frameworkinstallextras: + $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \ + BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ + srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) + # This installs a few of the useful scripts in Tools/scripts scriptsinstall: SRCDIR=$(srcdir) $(RUNSHARED) \