[Starkit] sdx fails to find .vfs directory

Adrian Ho ll-starkit at 03s.net
Fri Oct 1 20:18:34 CEST 2004


On Fri, Oct 01, 2004 at 09:19:05AM +0200, David Zolli wrote:
> The problem comes from line 94 in wrap.tcl:
> 
> set idir [file root [file tail $out]].vfs
> 
> I think it would be better to write instead:
> 
> if {[file extension $out] eq ".kit" || [file extension $out] eq ".exe"} {
> 	set idir [file root [file tail $out]].vfs
> } else {
> 	set idir [file tail $out].vfs
> }
> 
> Don't you think so?

Nope.  For starters, it'll break many scripts that tries to
generate starpacks for multiple platforms:

  # with mystuff.vfs
  sdx wrap mystuff.linux -runtime tclkit-linux
  sdx wrap mystuff.solaris -runtime tclkit-solaris

Better to keep the existing convention and add the ability to specify an
explicit $idir.  That way, you can do this:

  sdx wrap superstuff -vfsroot mystuff.vfs

And attached is the trivial patch for it.  Hope I didn't break anything.

- Adrian
-------------- next part --------------
--- sdx.vfs/lib/app-sdx/wrap.tcl.orig	2004-10-01 19:12:01.854256704 +0800
+++ sdx.vfs/lib/app-sdx/wrap.tcl	2004-10-01 19:02:23.691150856 +0800
@@ -120,6 +120,10 @@
       set argv [lreplace $argv 1 2]
       set prefix 1
     }
+    -vfsroot {
+      set idir [lindex $argv 2]
+      set argv [lreplace $argv 1 2]
+    }
     -macbinary {
       set macbin 1
       set argv [lreplace $argv 1 1]
--- sdx.vfs/lib/app-sdx/help.tcl.orig	2004-10-01 19:12:48.003240992 +0800
+++ sdx.vfs/lib/app-sdx/help.tcl	2004-10-01 19:14:25.654395760 +0800
@@ -197,11 +197,13 @@
         -nocomp           Do not compress files added to starkit
         -runtime   file   Take starkit runtime prefix from file
         -verbose          Report actions taken
+        -vfsroot   dir    Use directory other than "name.vfs"
         -writable         Allow modifications (must be single writer)
 
-        Expects a directory called "name.vfs", and creates a fresh
-        starkit from it, called "name".  If a starkit is specified as
-        runtime prefix, then files will be merged with it.
+        Expects a directory called "name.vfs" (unless "-vfsroot" is
+        specified), and creates a fresh starkit from it, called "name".
+        If a starkit is specified as runtime prefix, then files will be
+        merged with it.
     }
 }
 


More information about the Starkit mailing list