| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | """distutils.command.bdist_dumb
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Implements the Distutils 'bdist_dumb' command (create a "dumb" built | 
					
						
							|  |  |  | distribution -- i.e., just an archive to be unpacked under $prefix or | 
					
						
							|  |  |  | $exec_prefix)."""
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # created 2000/03/29, Greg Ward | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __revision__ = "$Id$" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | from distutils.core import Command | 
					
						
							| 
									
										
										
										
											2000-08-05 01:31:54 +00:00
										 |  |  | from distutils.util import get_platform | 
					
						
							|  |  |  | from distutils.dir_util import create_tree, remove_tree | 
					
						
							| 
									
										
										
										
											2000-04-26 02:29:51 +00:00
										 |  |  | from distutils.errors import * | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class bdist_dumb (Command): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     description = "create a \"dumb\" built distribution" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |     user_options = [('bdist-dir=', 'd', | 
					
						
							|  |  |  |                      "temporary directory for creating the distribution"), | 
					
						
							| 
									
										
										
										
											2000-09-11 00:47:35 +00:00
										 |  |  |                     ('plat-name=', 'p', | 
					
						
							|  |  |  |                      "platform name to embed in generated filenames " | 
					
						
							|  |  |  |                      "(default: %s)" % get_platform()), | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |                     ('format=', 'f', | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |                      "archive format to create (tar, ztar, gztar, zip)"), | 
					
						
							| 
									
										
										
										
											2000-09-16 15:53:41 +00:00
										 |  |  |                     ('keep-temp', 'k', | 
					
						
							| 
									
										
										
										
											2000-03-31 05:22:47 +00:00
										 |  |  |                      "keep the pseudo-installation tree around after " + | 
					
						
							|  |  |  |                      "creating the distribution archive"), | 
					
						
							| 
									
										
										
										
											2000-07-05 03:07:37 +00:00
										 |  |  |                     ('dist-dir=', 'd', | 
					
						
							|  |  |  |                      "directory to put final built distributions in"), | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |                    ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-25 01:41:15 +00:00
										 |  |  |     boolean_options = ['keep-temp'] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |     default_format = { 'posix': 'gztar', | 
					
						
							|  |  |  |                        'nt': 'zip', } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def initialize_options (self): | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |         self.bdist_dir = None | 
					
						
							| 
									
										
										
										
											2000-09-11 00:47:35 +00:00
										 |  |  |         self.plat_name = None | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |         self.format = None | 
					
						
							| 
									
										
										
										
											2000-09-16 15:53:41 +00:00
										 |  |  |         self.keep_temp = 0 | 
					
						
							| 
									
										
										
										
											2000-07-05 03:07:37 +00:00
										 |  |  |         self.dist_dir = None | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # initialize_options() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def finalize_options (self): | 
					
						
							| 
									
										
										
										
											2000-09-11 00:47:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |         if self.bdist_dir is None: | 
					
						
							| 
									
										
										
										
											2000-05-27 17:27:23 +00:00
										 |  |  |             bdist_base = self.get_finalized_command('bdist').bdist_base | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |             self.bdist_dir = os.path.join(bdist_base, 'dumb') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |         if self.format is None: | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 self.format = self.default_format[os.name] | 
					
						
							|  |  |  |             except KeyError: | 
					
						
							|  |  |  |                 raise DistutilsPlatformError, \ | 
					
						
							|  |  |  |                       ("don't know how to create dumb built distributions " + | 
					
						
							|  |  |  |                        "on platform %s") % os.name | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-11 00:47:35 +00:00
										 |  |  |         self.set_undefined_options('bdist', | 
					
						
							|  |  |  |                                    ('dist_dir', 'dist_dir'), | 
					
						
							|  |  |  |                                    ('plat_name', 'plat_name')) | 
					
						
							| 
									
										
										
										
											2000-07-05 03:07:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |     # finalize_options() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def run (self): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-30 18:27:54 +00:00
										 |  |  |         self.run_command('build') | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-16 15:30:47 +00:00
										 |  |  |         install = self.reinitialize_command('install', reinit_subcommands=1) | 
					
						
							| 
									
										
										
										
											2000-05-13 03:06:56 +00:00
										 |  |  |         install.root = self.bdist_dir | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-30 18:27:54 +00:00
										 |  |  |         self.announce("installing to %s" % self.bdist_dir) | 
					
						
							| 
									
										
										
										
											2000-09-16 15:30:47 +00:00
										 |  |  |         self.run_command('install') | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # And make an archive relative to the root of the | 
					
						
							|  |  |  |         # pseudo-installation tree. | 
					
						
							| 
									
										
										
										
											2000-04-22 02:51:25 +00:00
										 |  |  |         archive_basename = "%s.%s" % (self.distribution.get_fullname(), | 
					
						
							| 
									
										
										
										
											2000-09-11 00:47:35 +00:00
										 |  |  |                                       self.plat_name) | 
					
						
							| 
									
										
										
										
											2000-09-30 18:27:54 +00:00
										 |  |  |         self.make_archive(os.path.join(self.dist_dir, archive_basename), | 
					
						
							|  |  |  |                           self.format, | 
					
						
							|  |  |  |                           root_dir=self.bdist_dir) | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-16 15:53:41 +00:00
										 |  |  |         if not self.keep_temp: | 
					
						
							| 
									
										
										
										
											2000-09-30 18:27:54 +00:00
										 |  |  |             remove_tree(self.bdist_dir, self.verbose, self.dry_run) | 
					
						
							| 
									
										
										
										
											2000-03-31 05:22:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-31 02:56:34 +00:00
										 |  |  |     # run() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # class bdist_dumb |