Short: Generates file lists for MakeCD Author: Ralph Reuchlein Uploader: Ralph Reuchlein Type: disk/cdrom Version: 1.0 Replaces: disk/cdrom/MCD_DirList.lha Architecture: m68k-amigaos Kurz: Erzeugt Dateilisten für MakeCD MakeCD_DirList ============== PURPOSE Ever tried to backup a complete partition or directory on a (re)writeable CD? You got no errors during ISO image creation? You are a lucky one, because ... ... I got problems. I am using (soft) links on my partitions and MakeCD terminates the ISO image creation if it detects a link. The only thing I can do is building a file list without the link entries. Thats the main purpose of this program. You might say 'thats no real backup, because the links are missing!'. Yes, you are right. Unfortunately this isn't the only problem: Files listed in file lists got no protection bits, no timestamps for directories and no file comments in the resulting ISO image (refer to the documentation of MakeCD if you can't believe it). When e.g. making a backup from your YAM emails, you will loose your mail status flags that are stored in file comments (my AsimCDFS doesn't retrieve them). So I invented a separate file which is finally a AmigaDOS script that sets the protection bits, updates the timestamps and writes file comments. This script file is stored in the main directory you will backup. You will also be warned if there are read protected files, because MakeCD will not be able to read these files for backup. Its your turn to change the read protection for yourself. HISTORY v1.0: - First Release INSTALL Simply unpack the archive to anywhere you want. I prefer to copy the executable to C:. REQUIREMENTS - OS 3.0 - MakeCD if you intend to backup the listed files to CD USAGE The template is STARTDIRECTORY=DIR/A,PREFIX=PRE,PROGRESSBAR=BAR/S You always have to provide the directory from where you want to build up the file list. The parameter PREFIX allowes making a subdirectory in your ISO image to avoid mixing several file lists in one ISO image. The PREFIX parameter must have a trailing '/' (which will not be checked at the moment)! Finally the PROGRESSBAR switch turns on a simple directory level progress bar. The file list will be written to STDOUT, mainly your Shell window. Thus you must redirect the output to a file if MakeCD should use it. The progress bar and the final report is written to STDERR. The additional script, created by MakeCD_DirList, will be written in the directory specified by DIR with the filename ".amiga_makecd_update". The generated script can contain the usual SETDATE, PROTECT, FILENOTE and MAKELINK commands. It depends on the files and directories: SETDATE set only for directories, because MakeCD handles file entries correctly PROTECT always set for directories and only set for files if other flags as RWED are used FILENOTE always set for files and directories MAKELINK always set for each found link. Broken links are stored too, but they were commented out by ';'. To search for them, simply use SEARCH with the keyword ";MAKELINK". If you intend to backup the CD data to another directory, you simply need to copy the full data to that directory and call the script .amiga_makecd_update in this directory. Thats all. EXAMPLE I want to backup my YAM directory to CD: MakeCD_DirList YAM: YAM/ >ram:YAM_directory This would scan YAM: and its subdirectories. The 'YAM/' is the prefix for the resulting ISO image, that means every scanned entry is located in a directory called YAM on CD. Finally the file list for MakeCD is redirected to ram:YAM_directory. After processing the above example would return in the Shell window: 45 dirs (2 empty), 3509 files (0 read protected, 95421168 bytes), 1 good and 0 bad links processed (0 unknown). The file ".amiga_makecd_update" in the directory YAM: now contains for example: SETDATE "log" 01-Dez-99 19:55:56 SETDATE "Draft" 25-Dez-99 16:06:06 SETDATE "Icons_PL" 10-Jul-99 13:19:02 FILENOTE "Icons_PL/YAMPLIcons.readme" "YAM Prolite Icons" SETDATE "Catalogs" 11-Jun-99 16:52:01 SETDATE "Catalogs/deutsch" 10-Jul-99 13:10:56 SETDATE "Icons_NI" 10-Jul-99 13:20:19 MAKELINK "Icons" "INTERNET:Programme/YAM/Icons_NI" SOFT SETDATE "Icons_MWB" 25-Apr-99 12:30:38 FILENOTE "Icons_MWB/status_group" "Mario Cattaneo " ... SETDATE "news" 25-Apr-99 12:31:38 SETDATE "misc" 25-Dez-99 19:12:26 PROTECT "misc/look4mail.sh" srwed PROTECT "misc/correctAddress.sh" srwd PROTECT "misc/viewLhA.sh" srwd SETDATE "temp" 27-Dez-99 10:23:19 The resulting file list file ram:YAM_directory contains for example: INTERNET:Programme/YAM/log/YAM-Dec1999.log::YAM/log/YAM-Dec1999.log INTERNET:Programme/YAM/log/YAM-Jan1999.log::YAM/log/YAM-Jan1999.log INTERNET:Programme/YAM/log/YAM-Feb1999.log::YAM/log/YAM-Feb1999.log ... INTERNET:Programme/YAM/.folders::YAM/.folders INTERNET:Programme/YAM/YAM20P6.lha::YAM/YAM20P6.lha INTERNET:Programme/YAM/YAM20P7.lha::YAM/YAM20P7.lha INTERNET:Programme/YAM/arexx_commands.txt.info::YAM/arexx_commands.txt.info INTERNET:Programme/YAM/temp::YAM/temp This file is used for MakeCD to generate the ISO image. Remember: You have to make read protected files readable for MakeCD, because MakeCD doesn't change anything on files and directories. Avoid backupping image files MakeCD generates, because they are in use by MakeCD and can't be read by it for ISO image creation. If you want to copy the CD contents to another directory some years later, you simply need to copy the CD directory to destination with: copy CD0:YAM SOMEWHERE: clone After that change to the destination directory cd SOMEWHERE: and then call execute .amiga_makecd_update Finished. BUGS At the moment there is none I believe and bug reports are always welcome. DISCLAIMER THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MISC Suggestions and bug reports are welcome. I am going to improve the little tool with some more preferences like deny lists (directories that should not be backuped) and so on. Be patient. I have added the source to the archive. Feel free to use the code unless my copyright notice always is attached to. CONTACT Ralph Reuchlein [updated 30-May-2020 because neither address nor email was valid]