REBOL [
    Title: "Do-Thru"
    Author: "Allen Kamp"
    Email: allenk@powerup.com.au
    Date: 4-Jun-2000
    file: %do-thru.r
    Purpose: "To 'do cache scripts with args"
    Category: [view 3]
]

do-thru: func [
    "Do a file from the net thru the public cache."
    url [url!]
    /args arg
    /update "Force update from source site"
    /local path file
][
    path: parse url "/"
    file: trim/with last path {\:*?"<>|}
    path: rejoin [system/options/home %public/ path/3 "/"]
    if not exists? path [make-dir path]
    if any [update not exists? path/:file] [
       data: read/binary url write/binary path/:file :data
    ]
    either args [do/args path/:file :arg][do path/:file]
]

;example: do-thru http://www.rebol.com/library/scripts/viewer.r