Version 61 of sdx

Updated 2006-03-24 20:59:35 by jcw

http://www.equi4.com/images/sdx.gif

SDX is an application designed to interact with Starkits (previously called scripted documents). The acronym now stands for Starkit Developer eXtension.

SDX is frequently named sdx.kit on systems where extensions are used to create mappings between files and their interpreters.

Hopefully users of sdx will chime in here with pointers to documentation, examples of use, tricks, techniques, and more. The combination of tclkit and starkits is a very powerful one.

See also Starpacks (previously called Custom Tclkits) and Scripted Document Structure.


Main SDX subcommands available for use (see home page for more info):

(Note that online help is available as sdx help and sdx help cmd where cmd is the sdx command you want to know about.)

sdx fetch
Fetch a file from an HTTP or FTP server (try "sdx fetch http://wiki.tcl.tk/4.html ")
sdx lsk yourstarkit
List the contents of a starkit
sdx qwrap yourscript.tcl
a shortcut for "sdx wrap", creating a runnable compressed starkit from a single Tcl script (avoids having to do "mkdir myapp.vfs/bin/main.tcl" etc, manually)
sdx tgz2kit
convert a tar/gz archive to a starkit VFS
sdx unwrap yourstarkit
Extract the contents of a starkit into a file system. Creates a directory with the name [file root starkit].vfs The directory must not already exist.
sdx update
a new way to update starkits, based on starsync
sdx version
calculate "version ID" of a starkit, and report GMT date of newest file inside
sdx wrap skname
Takes the contents of the directory skname.vfs and and creates a starkit with the name skname from it. Be sure to use the -writable flag if you want your starkit to be writable! By default starkits are read-only. Add the -runtime tclkit flag to create a starpack instead of a normal starkit.
sdx addtoc
Adds a "TOC" to a dir-tree, containing a full MD5 file index
sdx eval
Evaluate one Tcl command from the command line
sdx ftpd
Simple FTP server
sdx httpd
Simple HTTPD server
sdx httpdist
Fetch/upload updates using the HTTPSYNC protocol
sdx ls
A very simple Unix-like "ls" command in pure Tcl
sdx md5sum
Calculate and print the MD5 message digest of files
sdx mkinfo
Metakit file structure display
sdx mkshow
Metakit raw datafile dump/view utility
sdx ratarx
Reverse actions of a "tar x" command
sdx rexecd
An rexec-compatible remote Tcl command server
sdx starsync
Starsync CGI server
sdx sync
Synchronize two directory trees (either can use any type of VFS)
sdx treetime
Adjust modtimes in dir trees to match most recent file inside

(crc16, pkgIndex, and tree were erroneously listed in an older version of sdx - if your sdx (or sdx.kit) still lists them, then you should download the latest version.)


SDX under Windows and SDX under MacOS


[Does anyone have wiki pages or web URLs of actual examples of using sdx.kit ?? Particularly the various servers, etc.]


How does sdx update know about our http-Proxy-Server?

PT writes 19-Aug-2003: sdx uses the autoproxy package from this wiki. Under unix (or windows) you can set the http_proxy environment variable to the URL of your proxy server (eg: export http_proxy='http://wwwproxy:8080 '). Under Windows the package looks into the registry and uses the Internet Explorer settings to find the proxy information.

The package needs enhancement to cope with authenticating proxies - but basically this will involve setting http_proxy_user and http_proxy_pass. With some way needed to get the password from the user if it isn't available in the environment.


RP How does one write a Starkit application to handle resources, like those supported in the command option? I have found it hard to name the application so that I could refer to it in my ~/.Xresources file. Even tk appname doesn't seems to work.


RLH This is a request for enhancement. Currently changing the icon of the bundled application is very tedious. You have to make sure your .ico has 4 or 5 different sizes (etc.). On the Perl/Tk side using "pp" there is just and --icon, -i switch. I would like to be able to pass a switch to sdx that would do the same, without worrying about sizes etc. I don't know if this is possible but doing something like ( sdx.kit wrap app.exe -runtime c:\tcl\bin\tclkit.exe -icon app.ico ) would be very nice. Just a wish. :-)


CLN I honestly haven't tried this yet but it occurs to me that SDX doesn't play well with CVS. I'd like to have the source for my application stored in CVS. That puts lots of pesky CVS directories in every level of my tree. And sdx wrap is going to try to grab those CVS directories and add them to the kit, right? It'd be nice if sdx had an --exclude option like tar does so you could exclude certain files or directories in your tree from the resulting kit. Any thoughts on how to use sdx and CVS together?

EMJ When testing/playing, I just put up with the bigger starkit containing the CVS directories, when I want a "proper" release I do an export from CVS in a temporary directory and create the kit there.

24mar06 jcw - Actually, SDX has always been special-cased to skip the CVS dirs (the "sync" code internally has the "exclude" logic you describe, it just isn't exposed at the "sdx wrap" command level). Just try it!


Coming soon - some more extensions

sdx create
creates a Starkit VFS hierarchy from specified source file (a bit like sdx qwrap + sdx unwrap)
sdx fill
fill the .vfs/lib directory with dependent packages

For more details see sdx extensions for more details

[ Category Application | Category Wikit | Category Tclkit ]