1) Using it RsyncBackup for local copies is the easiest , just run install and your set.
Well, not quite. First, the user needs to figure out what you are doing, so they don't get some surprises. In the local section, you use the long form of the parameters, and they seem to be correct, except for "--dry-run" which is documented (but probably not understood by most users). In the Network section, you have used the short form of the parameters. You use "-aqzx" which is probably wrong. I would suggest using "-aqzX", or "-aqX", which might be faster, depending on the system, and the network link. "x" is not the same as "X". From the docs:
-X, --xattrs preserve extended attributes
-x, --one-file-system don't cross filesystem boundaries
The second one doesn't make sense in OS/2, while the first one is essential. It may also be a good idea to add the "-u" parameter, so that newer files in the target are not replaced, although that may not be the desired action, in some cases.
It would also be good to demonstrate the use of the "--delete" parameter. Without that, all of the old stuff that has been removed from the source directory will still exist in the target directory. That can result in a real mess, eventually.
Next, you should NOT put RSync.EXE and RSync.log, into the %ETC% directory (\MPTN\ETC). You should have RSync, properly extracted, into it's own directory, then put that directory into the Working directory field in the icons. The logs end up where they should anyway (<boot drive>:\VAR\LOG).
Since you brought it up what's the correct way to do it now
Replace this:
/***********************************************************************/
/* query the bootdrive (didn't use SysBootdrive 'cause of OREXX) */
/***********************************************************************/
IF BootDrive='' THEN
DO
path_to_os2_ini=VALUE(USER_INI,,"OS2ENVIRONMENT")
BootDrive=FILESPEC(D,path_to_os2_ini)
END
with this:
/***********************************************************************/
/* query the bootdrive (didn't use SysBootdrive 'cause of OREXX) */
/***********************************************************************/
IF BootDrive='' THEN
DO
BootDrive=sysBootDrive()
END
This method will not work on any ancient REXX (pre Object REXX time frame), but then the user has the option of inserting the proper drive into the script.
It is also not good to make the user read through ALL of the code, to find places where they need to change things like the IP address of the backup server. You should probably use a config file, where a user can define things like that, then import the information into your scripts at run time. One config file, with all of that stuff would be sufficient, it doesn't matter if some of it isn't used in various scripts.
It would also be helpful, if you put a sample of how to copy something that is in the root of a drive, to the root of a drive on another system. That helps if a user wishes to use RSync to synchronize two systems.
I need to do more work with this. It is a good idea, but I think it can be done in a better way. A GUI interface, with check boxes, or radio buttons, for the options, might work a lot better.