BindNames V2.0 by Dave Haynie (Ver 36.19 modified for AmigaDOS 2.04+ By Robert Hardy) BindNames is a rather simple hack I came up with to solve the "Assign" problem. Like most folks with large hard disks containing lots of different programs, my Startup-Sequence was starting to get full of Assign statements. While that alone isn't necessarily enough to make most go out and write a program, I was starting to think of this as an inelegance. Nearly every other new program I installed onto my system needed a new set of logical names, and so for every new program I ended up having to edit my Startup-Sequence. I also had to pay attention to the ordering of Assignments, since obviously I couldn't base an assignment on one that hadn't been made yet. The end result was that the Startup Sequence was getting rather ugly, with no sign of change on the immediate horizon. Since problems should be solved by those who see them, I came up with BindNames. BindNames is designed to do all of the logical name assignments you need at once. It looks for any number of files in the directory "SYS:Names". The format of such files is: : [ADD|DEFER|PATH] If the first non-whitespace character is '#', '!' or ';' the rest of the line is treated as a comment. To quote my "SYS:Names/System" file: ! System Assigns BIN: SYS:bin OS: SYS:os C: BIN:c COM: BIN:Com L: OS:L FONTS: PATH: FD: OS:Fonts S: OS:s DEVS: OS:Devs LIBS: OS:Libs LIBS: sys:extras/Libs ADD ENV: RAM:Env T: RAM:T BBS: 1500HS-Work:DLG DEFER BindNames will read all name files before making any assignments, and it can figure out dependencies, so it doesn't matter how you order the names. It will create directories that it can't find, such as RAM:Env and RAM:T in the above example, and it will generate warnings for name assignments that it can't resolve. It also accepts several options, of the form: BindNames [F=FILE ] [N=NAMES ] [S=SYSTEM ] [V=VERBOSE] [R=REMOVE] [T=TEST] FILE - allows you to specify a single BindNames file. NAMES - allows you to specify the full path of the Names directory. SYSTEM - causes BindNames to re-assign the SYS: to the given path before searching for SYS:Names. For example, my main system disk is called FH0:, but I boot from DH2: (sure sounds like A2090A madness to me too, but what can I say), so my Startup-Sequence says "BindNames >NIL: SYSTEM fh0:". VERBOSE - causes BindNames to list each name and equivalence as it runs. The TEST switch does the same thing, but doesn't actually make the name assignments. REMOVE - causes BindNames to remove instead of add. When used with the FILE or NAMES keywords, can help avoid huge cluttered device lists. Using BindNames, I've managed to get every single "Assign" command out of my Startup-Sequence. And if I need to add a series of assignments for a new program, I can just create a SYS:Names file for that program. That makes installing the program much easier, and also keeps all the logical names for a particular program in an obvious location, which makes modifying the system setup much simpler in the future. BindNames is public domain, do with as you please. -Dave Haynie 3/14/89 PS: V36.16 modified to handle new V36 Assign arguments DEFER, PATH and ADD. Excluded *.bak when reading the Names directory. Added NAMES, REMOVE and FILE keyworks. Added Icon support. - Robert Hardy, uucp: Robert_Hardy@tvinet.com Sat Apr 16 1994 V36.19 Added comment characters for assign files: '#', '!' or ';' RWH Mon Aug 7 1995