r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[SDK]

AndrewL
18-Jun-2006
[475]
I've been reading the docs both for the preprocessor and for the 
newer include.r script but I'm a bit confused, I wonder if someone 
could help clear it up for me. Here's my situation. I have view and/or 
SDK installed on a PC and a script sitting on my desktop. This script 
needs one or more library scripts which are available from web servers. 
How do i write the start of the script so that I can do all of;

1) Double click and have it run in view

2) Run the preprocessor so that I have an all in one script ready 
to run/copy somewhere

3) Encap it by dragging and driopping it on encmdview.exe or similar


I want to be able to do this without changing a single character 
of the script. I want to access the library files from a web server 
because here at work I often write scripts on various different servers 
and prefer to keep one copy of the libs centrally and not downloaded 
onto each machine.
Gabriele
19-Jun-2006
[476x2]
one trick is to use something like:
x: #do [1]
either tuple? x [
    ; script has been run directly
    do %include1.r
    do %include2.r
] [
    ; script is being preprocessed/encapped
    #include %include1.r
    #include %include1.r
]
Anton
19-Jun-2006
[478]
don't you mean:
	either issue? x [...
Gabriele
19-Jun-2006
[479x4]
about include files being on a web server, the official prebol does 
not support that; i think that Ladislav's INCLUDE does, and I have 
a patched prebol.r that does support including from urls too.
Anton, of course i meant ISSUE?. sorry.
let me repeat it to avoid confusion:
x: #do [1]
either issue? x [
    ; script has been run directly
    do %include1.r
    do %include2.r
] [
    ; script is being preprocessed/encapped
    #include %include1.r
    #include %include1.r
]
AndrewL
19-Jun-2006
[483]
Great, that works perfectly, as you said for local files.. I haven't 
managed to get include to work yet for remote files, is the patched 
prebol.r available somewhere? (your rebsite is down)
Volker
19-Jun-2006
[484x2]
; would this work?
files: [#include  %include1.r #include  %include2.r]
foreach files[if file? files/1[change files load files/1]
do files
at least tihis version is buggy..
Ladislav
19-Jun-2006
[486x3]
I haven't managed to get include to work yet for remote files
 - interesting, what did you try?
would this work?
 - how would you like it to work?
(#include is a preprocessor instruction, so it is being preprocessed 
usually)
Volker
19-Jun-2006
[489]
it read all filenames in the block and inlines them. after preprocessing 
there are no filenames, so it replaces nothing. without preprocessing 
there is all the files content. in both cases i can do it.
Ladislav
19-Jun-2006
[490]
hmm, files/1 may be a file! even in case the source was preprocessed
Volker
19-Jun-2006
[491]
eeks, another bug..
Ladislav
19-Jun-2006
[492]
...and if won't be a file! in case the source wasn't preprocessed
Volker
19-Jun-2006
[493x2]
and the 'change inserts multiple items. should change position.
the äinclude would not, but the %include1.r would.
Ladislav
19-Jun-2006
[495x2]
did you read http://www.fm.tul.cz/~ladislav/rebol/include.html
btw: foreach files [if file?...] is clearly not what you wanted it 
to be...
Volker
19-Jun-2006
[497x2]
i guess i trash that version completely :)
the question was more aboutthe concepts than the implementation *whistle*
Ladislav
19-Jun-2006
[499]
so, did you read the above mentioned description?
Volker
19-Jun-2006
[500x3]
Can your include also expand blocks? then this would work
if not value? 'include[do 5ladislavs-include.r]
include[ all the main code ]
Not yet, thought its like prebol. sorry.
did now.
Ladislav
19-Jun-2006
[503]
Can your include expand blocks?
 - INCLUDE takes only FILE! or URL! argumenta
Volker
19-Jun-2006
[504]
than my exapmle needs an extra file
Ladislav
19-Jun-2006
[505]
it is easy to allow blocks, though, because I implemented this functionality 
anyway
Volker
19-Jun-2006
[506x3]
when 'include is inbuild it is no problem. but if the main script 
must include to include something and want own content too, would 
help.
; 'do of course..
rebol[]
if not value? 'include[do %ladislavs-include.r]
do include[ all the main code ]
no, then the include/link would be confused.
Ladislav
19-Jun-2006
[509x2]
I am using the mouse-click method when I want to INCLUDE something. 
Don't you want to describe how it can be done e.g. in Linux?
(I mean whether you want to write a section describing how to do 
the same in Linux)?
Volker
19-Jun-2006
[511x2]
i would try a bash-script and do the same as with the windows-shortcut.
will try. but i thought about viewtop.  alsthough that one can be 
patched.
Ladislav
19-Jun-2006
[513]
this is the source: http://www.fm.tul.cz/~ladislav/rebol/include.rmd
Volker
19-Jun-2006
[514]
Thanks.
AndrewL
19-Jun-2006
[515x2]
When I #include http:///www.an.example.com/directory/script.rit 
gives an error that it can't find script.r even if I've appended 
the url directory to the include path ... maybe I'm assuming something 
somewhere
The mouse click thing works for me by the way :)
Ladislav
20-Jun-2006
[517x2]
this works for me, did you try something like that?

>> save %test.r [rebol [] #include http://www.fm.vslib.cz/~la
dislav/rebol/lfunc.r]
>> print read %test.r
rebol [] #include http://www.fm.vslib.cz/~ladislav/rebol/lfun
c.r
>> include %test.r
connecting to: www.fm.vslib.cz
connecting to: www.fm.vslib.cz
>>
(sorry for line breaks)
Gabriele
20-Jun-2006
[519]
Andrew: I haven't published the changed prebol. (I was actually hoping 
for Carl to make it the default in the future.) The problem with 
it is that encmdview would still run with the standard prebol since 
it is built into the exe, so you would still have some problems. 
In the end, it's probably better to use Ladislav's INCLUDE function 
as it gives you more flexibility, and I guess it'll become the default 
too in the future.
AndrewL
20-Jun-2006
[520x5]
The following is typed not pasted ...
>> do http://www.fm.vslib.cz/ladislav/rebol/include.r
>> save %test.r [REBOL [] #include http://www.absentis.com/files/rebol/library/libadl/libadl.r]
>> include %test.r
** Access Error: Cannot open /c/Documents and Settings/kccadl.KAS/var/website/files/rebol/scripts/libadl.r