Soft is a system for generating path and other shell variables based on user selected software packages. The soft system generates only those paths and variables that are required, which is important due to the large number of packages available on the ECE system. Specifying all paths would lead to “ridiculously long path” shell error messages. Furthermore, soft facilitates system maintenance by organizing packages according to architecture/operating system.
A set of architecture/operating system specific databases describes the software packages that are available for each architecture/operating system. For each package, a database gives the package’s executables’ path, and specifies the required shell variables and their definitions. The support staff updates these databases as new softwares are installed.
The set of software packages selected by the user is kept in a file called .software under his home directory. Generally, a user should not edit .software directly. Instead, he should run the appropriate setup script in /usr/local/setup. The setup script adds the name of the package to .software.
On the start of a new shell, soft consults the appropriate database and generates the paths and shell variables needed for each package in .software. The result is a shell script that is then source’d (read in) by the shell. Because an ECE account may span multiple machine architectures and operating systems, the script generated by soft is architecture/operating system specifc. Soft generates a new script only when the .software file or the database has changed since the last time soft has run. If there are no changes, the old script is source’d, saving computer time.