[svn:parrot] r43144 - trunk/runtime/parrot/library

fperrad at svn.parrot.org fperrad at svn.parrot.org
Fri Dec 18 19:38:57 UTC 2009


Author: fperrad
Date: Fri Dec 18 19:38:51 2009
New Revision: 43144
URL: https://trac.parrot.org/parrot/changeset/43144

Log:
[distutils] handles dependencies for manifest & sdist

Modified:
   trunk/runtime/parrot/library/distutils.pir

Modified: trunk/runtime/parrot/library/distutils.pir
==============================================================================
--- trunk/runtime/parrot/library/distutils.pir	Fri Dec 18 19:14:35 2009	(r43143)
+++ trunk/runtime/parrot/library/distutils.pir	Fri Dec 18 19:38:51 2009	(r43144)
@@ -2634,6 +2634,21 @@
 
 .sub '_manifest' :anon
     .param pmc kv :slurpy :named
+
+    $S0 = ''
+    $I0 = file_exists('MANIFEST')
+    unless $I0 goto L1
+    $S0 = slurp('MANIFEST')
+  L1:
+
+    $S1 = mk_manifest()
+    unless $S0 != $S1 goto L2
+    spew('MANIFEST', $S1, 1 :named('verbose'))
+  L2:
+.end
+
+.sub 'mk_manifest' :anon
+    .param pmc kv :slurpy :named
     .local pmc needed, generated
     needed = new 'Hash'
     generated = new 'Hash'
@@ -2730,7 +2745,7 @@
 
     $P0.'sort'()
     $S0 = join "\n", $P0
-    spew('MANIFEST', $S0)
+    .return ($S0)
 .end
 
 .sub '_manifest_add_hash' :anon
@@ -2831,15 +2846,20 @@
     .param pmc kv :slurpy :named
     run_step('manifest', kv :flat :named)
 
-    $S0 = get_tarname('.tar', kv :flat :named)
-
+    $S0 = slurp('MANIFEST')
+    $P0 = split "\n", $S0
+    $S0 = get_tarname('.tar.gz', kv :flat :named)
+    $I0 = newer($S0, $P0)
+    if $I0 goto L1
     .local string cmd
+    $S0 = get_tarname('.tar', kv :flat :named)
     cmd = 'tar -cvf ' . $S0
     cmd .= ' -T MANIFEST'
     system(cmd, 1 :named('verbose'))
 
     cmd = 'gzip --best ' . $S0
     system(cmd, 1 :named('verbose'))
+  L1:
 .end
 
 .sub '_clean_gztar' :anon
@@ -2872,15 +2892,20 @@
     .param pmc kv :slurpy :named
     run_step('manifest', kv :flat :named)
 
-    $S0 = get_tarname('.tar', kv :flat :named)
-
+    $S0 = slurp('MANIFEST')
+    $P0 = split "\n", $S0
+    $S0 = get_tarname('.tar.bz2', kv :flat :named)
+    $I0 = newer($S0, $P0)
+    if $I0 goto L1
     .local string cmd
+    $S0 = get_tarname('.tar', kv :flat :named)
     cmd = 'tar -cvf ' . $S0
     cmd .= ' -T MANIFEST'
     system(cmd, 1 :named('verbose'))
 
     cmd = 'bzip2 ' . $S0
     system(cmd, 1 :named('verbose'))
+  L1:
 .end
 
 .sub '_clean_bztar' :anon
@@ -2899,18 +2924,22 @@
     .param pmc kv :slurpy :named
     run_step('manifest', kv :flat :named)
 
+    $S0 = slurp('MANIFEST')
+    $P0 = split "\n", $S0
     $S0 = get_tarname('.zip', kv :flat :named)
-
+    $I0 = newer($S0, $P0)
+    if $I0 goto L1
     .local string cmd
     cmd = 'cat'
     $P0 = get_config()
     $S1 = $P0['osname']
-    unless $S1 == 'MSWin32' goto L1
+    unless $S1 == 'MSWin32' goto L2
     cmd = 'type'
-  L1:
+  L2:
     cmd .= ' MANIFEST | zip -9 -@ '
     cmd .= $S0
     system(cmd, 1 :named('verbose'))
+  L1:
 .end
 
 .sub '_clean_zip' :anon


More information about the parrot-commits mailing list