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

fperrad at svn.parrot.org fperrad at svn.parrot.org
Mon Nov 30 12:50:32 UTC 2009


Author: fperrad
Date: Mon Nov 30 12:50:26 2009
New Revision: 42824
URL: https://trac.parrot.org/parrot/changeset/42824

Log:
[distutils] handles options from command line

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

Modified: trunk/runtime/parrot/library/distutils.pir
==============================================================================
--- trunk/runtime/parrot/library/distutils.pir	Mon Nov 30 11:01:14 2009	(r42823)
+++ trunk/runtime/parrot/library/distutils.pir	Mon Nov 30 12:50:26 2009	(r42824)
@@ -21,7 +21,7 @@
 =begin perl
 
     pir::load_bytecode('distutils.pir');
-    setup(
+    setup( @ARGS,
         ... many key/values here ...
     );
 
@@ -238,23 +238,40 @@
 .sub 'setup'
     .param pmc args :slurpy
     .param pmc kv :slurpy :named
+    .local pmc steps
+    steps = new 'ResizableStringArray'
     $P0 = iter args
-    if $P0 goto L1
-    # default step
-    run_step('build', kv :flat :named)
-    goto L2
   L1:
-    $P0 = iter args
-  L3:
     unless $P0 goto L2
-    .local string cmd
-    cmd = shift $P0
-    $I0 = run_step(cmd, kv :flat :named)
-    if $I0 goto L3
+    $S0 = shift $P0
+    $S1 = substr $S0, 0, 2
+    unless $S1 == '--' goto L3
+    $S1 = substr $S0, 2
+    $S2 = shift $P0
+    print $S1
+    print "="
+    say $S2
+    kv[$S1] = $S2
+    goto L1
+  L3:
+    push steps, $S0
+    goto L1
+  L2:
+
+    $P0 = iter steps
+    if $P0 goto L11
+    # default step
+    run_step('build', kv :flat :named)
+    goto L12
+  L11:
+    unless $P0 goto L12
+    $S0 = shift $P0
+    $I0 = run_step($S0, kv :flat :named)
+    if $I0 goto L11
     print "unknown target : "
-    say cmd
+    say $S0
     run_step('usage')
-  L2:
+  L12:
 .end
 
 =item run_step
@@ -345,7 +362,7 @@
     .param pmc kv :slurpy :named
     .local string msg
     msg = <<'USAGE'
-usage: parrot setup.pir [target]*
+usage: parrot setup.pir [target|--key value]*
 
     Default targets are :
 
@@ -2409,17 +2426,7 @@
   L1:
 
     .local string version
-    $I0 = time
-    $P1 = decodetime $I0
-    $P2 = new 'FixedIntegerArray'
-    set $P2, 3
-    $I0 = $P1[.TM_YEAR]
-    $P2[0] = $I0
-    $I0 = $P1[.TM_MON]
-    $P2[1] = $I0
-    $I0 = $P1[.TM_MDAY]
-    $P2[2] = $I0
-    version = sprintf "%04d%02d%02d", $P2
+    version = 'HEAD'
     $I0 = exists kv['version']
     unless $I0 goto L2
     version = kv['version']


More information about the parrot-commits mailing list