UserProfileDoc.tioga
Subhana, June 6, 1984 4:19:57 pm PDT
Russ Atkinson (RRA), June 19, 1985 8:12:40 pm PDT
Bob Hagmann, March 27, 1986 5:10:20 pm PST
Doug Wyatt, June 19, 1987 2:45:25 pm PDT
Eric Nickell, October 29, 1987 1:43:51 pm PST
Willie-Sue, November 25, 1987 4:17:57 pm PST
Michael Plass, January 21, 1988 10:35:28 am PST
Wes Irish, May 2, 1988 3:15:29 pm PDT
JKF September 13, 1988 3:17:26 pm PDT
Willie-s, December 11, 1990 12:11 pm PST
USER PROFILES
CEDAR 2.0 — FOR INTERNAL XEROX USE ONLY
UserProfile
Documentation for UserProfile Options
© Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1990 Xerox Corporation. All rights reserved.
Abstract: Many components of Cedar permit the user to parameterize their behavior along certain predefined dimensions via a mechanism called the User Profile. Whenever the user boots or rollsback, his user profile is consulted to obtain the value for these parameters.
Maintained by: PCedarSupport:parc:xerox
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
Introduction
Many components of Cedar permit the user to parameterize their behavior along certain predefined dimensions via a mechanism called the User Profile. Whenever the user boots, his user profile is consulted to obtain the value for these parameters. This operation is performed by consulting a file whose name is .cedar.profile, or if no such file exists, a default profile .user.profile. In all cases, profiles are stored on the users simple home directory, which can be obtained by calling SystemNamesExtras.SimpleHomeDirectory[].
There are means for overriding or augmenting the user profile for any given machine. For servers, the presence of .server.profile in the home directory will override any user profile processing. For individual machines, the presence of .machineName.machineProfile, where machineName is the registered name of the machine, will augment the user profile (options not supplied by the user profile will be supplied by the machine profile).
The entries in this profile are of the form <key>: <value>RETURN, where key is a sequence of alphanumerics or .'s (case does not matter) and value is either (1) a BOOLEAN, (2) an INT, (3) a TOKEN, which is a rope consisting of either a sequence of characters delimited by SP, CR, TAB, Comma, Colon, or SemiColon, or, in the case that the first character is '", the sequence of characters up to the next matching '", or (4) a ListOfTokens. Comments can appear at any point in the profile, and are ignored.
Fine point: There is a mechanism to layer profiles. Entries of the form Include: <filename>RETURN acts as if the contents of the named file were included at this point. To make this feature more useful, a ">" (or "<") may be placed immediately after the colon of profile entries, meaning to append (or prepend) the <value> of this line to the previously defined <value> for the same key, if there is one.
In PCedar, there is the possibility that one's login name and one's home directory do not agree, and thus one's user profile might not be found. A Commander command has been added so that one can tell UserProfileImpl to read some file and treat it as the user profile. To a Commander type:
% SetRopeProfileFromFile {fileName}
This, however does not get the BootCommands section (or other sections) of the profile executed, so the following commands have been re-implemented:
NotePerLogin (Executes CommandTool.PerLogin commands)
NoteNewUser (Executes CommandTool.NoteNewUser commands)
NotePerCommandTool (Executes CommandTool.NotePerCommandTool commands)
NoteBootCommands (Executes CommandTool.NoteBootCommands commands)
To find out the (rope) value of a profile entry, execute:
ProfileEntryAsRope profileEntry
One may dynamically alter user profile values via the command tool. The new value(s) will persist until boot, rollback, new user, a new version of a profile file is saved, ProfileChanged is called, or the entry is again layered with another entry via the command tool. The commands for command tool manipulation are:
SetProfileEntry any valid user profile line (see above syntax)
Note: does NOT take affect until UpdateProfileEntries command.
UpdateProfileEntries cause SetProfileEntry commands to take effect.
May optionally be followed by any valid user profile line to take affect now.
UndoProfileChanges erases the effect of any previous SetProfileEntry / UpdateProfileEntries.
PrintProfileChanges print all current profile changes
In this document, if the corresponding entry does not appear in some profile file, then the value of the corresponding parameter is the indicated default. If you want to specify some value other than this default, or want to include the corresponding entry along with its default in your profile just so that you can see at a glance what settings are in effect, simply include it in your own profile. In PCedar, changing or adding an entry will be "noticed" only if one types ProfileChanged after saving the edits (although some profile options are only noticed when the package is initialized).