Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

REBOL stand-alone applications?

 [1/3] from: newsletters::scanzoni::com at: 3-Aug-2000 8:21


Librarian comment

These days, check out encap or payload

I would like to be able to put together an client side standalone application that uses REBOL - but I do not want to require the user to download the REBOL and see the scripts that make up the application. Is it possible to create a REBOL app that completely encapsulates the REBOL engine and hides the script(s).... And if so, how? - Scanzoni

 [2/3] from: kracik:mbox:dkm:cz at: 4-Aug-2000 17:46


This is a multi-part message in MIME format. --------------AA884A8894E2DC0069875E81 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Hi, There's a possibility to append your script after the REBOL executable, at least Windows loader does not complain. But you must then run REBOL with a long command line from a shortcut, not just rebol.exe. First, make a directory, copy REBOL.exe, hide-script.r and the script you want to hide (I use a random example dancelady.r) to that directory. Then run hide-script.r - it will create a modified REBOL executable and print a command line - copy it and paste into some shortcut. You can then delete dancelady.r file from disk - modified REBOL will still run it. Scripts and example shortcut (renamed, because Netscape Messenger tries to follow it) are attached. Hope this helps, -- Michal Kracik [newsletters--scanzoni--com] wrote:
> I would like to be able to put together an client side standalone > application that uses REBOL - but
<<quoted lines omitted: 4>>
> And if so, how? > - Scanzoni
--------------AA884A8894E2DC0069875E81 Content-Type: text/plain; charset=iso-8859-2; name="dancelady.r" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="dancelady.r" REBOL [ TITLE: "The Dance Lady" AUTHOR: "Ralph Roberts, =A92000" DATE: "13-Jan-2000" PURPOSE: "console animation demo" FILE: %dancelady.r] print newline print "^(1B)[10CPresenting the exotic" print "^(1B)[10C MS. ASCII REBOLI" print newline print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C _#*_*#_) " print "^(1B)[12C--(--/__\------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------/_/------" print "^(1B)[12C _\ \_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C ___#*_*#___ " print "^(1B)[12C------\_\------" print "^(1B)[12C _/ /_ " wait .2 prin "^(1B)[4A" print "^(1B)[12C .###. " print "^(1B)[12C (_#*_*#_ " print "^(1B)[12C-----/__\-)----" print "^(1B)[12C _/ /_ " print [newline "^(1B)[10C**applause**applause***^/"] print "^(1B)[12CNext Show 10 p.m." --------------AA884A8894E2DC0069875E81 Content-Type: text/plain; charset=iso-8859-2; name="hide-script.r" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hide-script.r" REBOL [] rebol-executable: read/binary %rebol.exe original-length: length? rebol-executable append rebol-executable read %dancelady.r write/binary %modified-rebol.exe rebol-executable print rejoin [ {modified-rebol.exe --do "do load to-string skip read/binary %modified-rebol.exe } original-length {"} ] --------------AA884A8894E2DC0069875E81 Content-Type: application/octet-stream; name="modified-rebol.exe.lnk__" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="modified-rebol.exe.lnk__" TAAAAAEUAgAAAAAAwAAAAAAAAEa7AAAAIAAAAMB2Gf4A/r8BANjijJ79vwEACez+AP6/AZtt AwAAAAAAAQAAAAAAAAAAAAAAAAAAAIwAFAAfD+BP0CDqOmkQotgIACswMJ0ZACNEOlwAAAAA AAAAAAAAAAAAAAAAAK1cFwAxAAAAAAASJyOAEABSRUJPTC0yAAAYADEAAAAAAAQpxVMQAG1v ZGlmaWVkAAAuADIAm20DAAQpF1UgAG1vZGlmaWVkLXJlYm9sLmV4ZQBNT0RJRkl+MS5FWEUA AAB/AAAAHAAAAAMAAAAcAAAAMgAAADgAAABbAAAAFgAAAAMAAACTEr04EAAAAEdBTUVTAEQ6 XABUXCMAAAACAAAAFAAAAAAAAAAAAAIAXFxLUkFDSUtcZ2FtZXMAUkVCT0wtMlxtb2RpZmll ZFxtb2RpZmllZC1yZWJvbC5leGUAFAAuAFwAbQBvAGQAaQBmAGkAZQBkAC0AcgBlAGIAbwBs AC4AZQB4AGUAEwBEADoAXABSAEUAQgBPAEwALQAyAFwAbQBvAGQAaQBmAGkAZQBkAEQALQAt AGQAbwAgACIAZABvACAAbABvAGEAZAAgAHQAbwAtAHMAdAByAGkAbgBnACAAcwBrAGkAcAAg AHIAZQBhAGQALwBiAGkAbgBhAHIAeQAgACUAbQBvAGQAaQBmAGkAZQBkAC0AcgBlAGIAbwBs AC4AZQB4AGUAIAAyADEAOQAxADMANgAiABAAAAAFAACgBQAAAC0AAAAAAAAA --------------AA884A8894E2DC0069875E81--

 [3/3] from: rchristiansen:pop:isdfa:sei-it at: 4-Aug-2000 10:44


Hmm... Well, with /View, here is how you can make a "stand-alone" app for the BeOS... 1. give the script the #! /boot/home/config/bin/rebol shebang 2. make the script executable. 3. give the script a nice icon. 4. use PackageBuilder to have the following installed when the end user double-clicks on the .pkg file... executable script in /install_folder executable script in /boot/home/config/bin/ rebol in /boot/home/config/bin/ This installs the /View rebol binary alongside the executable rebol script in the bin/ directory. Now the script is executable from the commandline (just type the name of the script) or the script is executable like other applications in that you can double-click on its icon to launch it. I'm sure something similar can be accomplished on other platforms. Of course, it's not within the license to install /View for the end user. This is how it COULD be done. 8-) -Ryan

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted