[REBOL] Re: Directory tools
From: jelinem1:nationwide at: 13-Apr-2001 8:30
My scheme to include external code is as follows. In my user.r I have:
lib-path: %/d/languages/rebol/libs/
I place the "library" files in the directory specified above. Then in my
code I simply write:
include "highfun"
include "mime-types"
Oh yeah, the 'include word is defined by my shell.r script which is
executed frim user.r. Just FYI its definition is:
include: func [some-lib][
do rejoin [lib-path some-lib ".r"]
]
Poking around the code in mime-type.r I see its intent (converting a
path/url to an object) but 'source-as-object is still a file! when 'read
tries to use it with the /full refinement. BTW the error is generated by
the file! and not the url! (ftp://).
I'll play with it more as time allows because everything is alot more fully
featured that the quick hacks that I wrote and I'd really like to see it
all work (and be able to use it!). Yes, the first thing I did was to use
the /script refinement. I also want to see my program working as it is
executing, thus /verbose.
- Michael Jelinek
Brett Handley
<[brett--codeconscious--com]>@rebol.com on 04/12/2001 09:47:25
PM
From: "Brett Handley" <[brett--codeconscious--com]>@rebol.com on 04/12/2001
09:47 PM
Please respond to [rebol-list--rebol--com]
Sent by: [rebol-bounce--rebol--com]
To: <[rebol-list--rebol--com]>
cc:
Subject: [REBOL] Re: Directory tools
> Thanks for posting file-tools.r! I have been writing bits of it for
myself
> as I needed them, and was currently balking at writing the
> directory-related functions (esp copying).
You're most welcome. I noticed while writing this email that I had not
included the top most target-directory
in the copy-directory function. I've rectified this in the version on my
website found at
http://www.codeconscious.com/rebol/scripts/file-tools.r
Looking at the code I'm wondering if it could be made a little more
explicit. I'm also not sure now
if it is handling relative FTP addressing properly. So I'll have to have
another look at it.
If you have some ideas I'd welcome them.
> I needed to modify the way that external code is included to use my own
> scheme, no problem.
Is it a generic scheme? Maybe I should add as an option to the functions?
:)
> I added a /verbose refinement to copy-directory. I want to see what my
> script does to make sure it behaves itself!
Another way is to use the /script refinement to see the code that is
produced.
> However, I'm getting the following error in mime-read. What is the
purpose
> of adding /full at the end of what should already be the full file path?
Inside mime-types.r there is a function called import-location-with-mime
which given a file! or url! returns an object where the components of the
file! or url! are in seperate fields. The /full refinement refers to a
function in this object which puts all the pieces back together again to
give you the original file! or url! (hopefully).
>> o: probe import-location-with-mime
%/d/html/eq/source/book-cod/about.r
make object! [
path: %/d/html/eq/source/book-cod/
name: %about
extension: %.r
full: func [][rejoin [path name extension]]
mime-type: func [][
get-mime-for-ext extension
]
]
>> o/full
== %/d/html/eq/source/book-cod/about.r
> >> retval: copy-directory/files/verbose %/d/html/eq/source/book-cod/
> ftp://user:[password--members--home--net]/source/book-cod/
> Copy Dir FROM: /d/html/eq/source/book-cod/
> TO: ftp://user:[password--members--home--net]/source/book-cod/
> - Copy file: about.r
> ** Script Error: Invalid path value: full
> ** Where: mime-read
> ** Near: read source-as-object/full
source-as-object should have been an object! with a field-function (method)
called "full", but it appears not. Maybe my import-location-as-mime
function
blew up in the face of your new scheme?
Brett.