Annotation of 43BSD/contrib/spms/man/catn/spmsintro.n, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: 
        !             4: SPMSINTRO(1P)      UNIX Programmer's Manual        SPMSINTRO(1P)
        !             5: 
        !             6: 
        !             7: 
        !             8: NAME
        !             9:      spmsintro - introduction to SPMS commands
        !            10: 
        !            11: INTRODUCTION
        !            12:      The Software Project Management System (SPMS) is a        system
        !            13:      for the management        of medium- to large-scale software sys-
        !            14:      tems. SPMS        provides, within the UNIX environment, a number
        !            15:      of        commands which can greatly simplify many tasks associated
        !            16:      with program development and maintenance. SPMS does not
        !            17:      attempt to        duplicate existing UNIX program development tools
        !            18:      such as _m_a_k_e or _S_C_C_S, but instead provides        a way of coordi-
        !            19:      nating these tools.
        !            20: 
        !            21:      Each software package managed by SPMS is organized        as a pro-
        !            22:      ject. A project is        a collection of directories, each of
        !            23:      which supports a specific activity        such as program develop-
        !            24:      ment, testing, or documentation. There is no restriction on
        !            25:      the number        of directories belonging to a project. The direc-
        !            26:      tory layout is arbitrary, and can be altered to reflect the
        !            27:      changing needs of the package. Projects can be nested to any
        !            28:      level and a mechanism is provided for executing commands
        !            29:      globally over an entire project hierarchy.
        !            30: 
        !            31:      SPMS can be fitted        to existing software systems. It retains
        !            32:      the full capabilities of the UNIX environment with        unres-
        !            33:      tricted access to UNIX tools. As a        result, software packages
        !            34:      developed using SPMS do not depend        on the system for their
        !            35:      survival and can be ported        to versions of UNIX that do not
        !            36:      support SPMS.
        !            37: 
        !            38: DESCRIPTION
        !            39:      Getting Started
        !            40: 
        !            41:      Before using SPMS for the first time you must do the follow-
        !            42:      ing -
        !            43: 
        !            44:      If        you are a C shell, _c_s_h,   user:
        !            45: 
        !            46:      1.          Include the directory `/usr/new' in the command search
        !            47:          path. This is done by altering the PATH variable in one
        !            48:          of the startup files, `.cshrc'  or `.login', in the
        !            49:          home directory.
        !            50: 
        !            51:      2.          Add the following aliases to the `.cshrc' file
        !            52:               alias chproject  'eval `"chproject"  \!*`'
        !            53:               alias pd  'eval `"pd"  \!*`'
        !            54: 
        !            55:      3.          Add the following command to the `.login' file
        !            56:               chproject  ^
        !            57: 
        !            58:      4.          Convert the home directory to a project root directory
        !            59:          by typing
        !            60: 
        !            61: 
        !            62: 
        !            63: Printed        6/22/83              5/20/83                            1
        !            64: 
        !            65: 
        !            66: 
        !            67: 
        !            68: 
        !            69: 
        !            70: SPMSINTRO(1P)      UNIX Programmer's Manual        SPMSINTRO(1P)
        !            71: 
        !            72: 
        !            73: 
        !            74:               /usr/new/mkproject  -d  ^
        !            75: 
        !            76:      5.          Execute the `.cshrc' and `.login' files by typing
        !            77:               source .cshrc
        !            78:               source .login
        !            79: 
        !            80:      If        you are a Bourne shell, _s_h, user:
        !            81: 
        !            82:      1.          Include the directory `/usr/new' in the command search
        !            83:          path. This is done by altering the PATH variable in the
        !            84:          startup file, `.profile', in the home directory.
        !            85: 
        !            86:      2.          Add the following command to the `.profile' file:
        !            87:               eval  `chproject  \^`
        !            88: 
        !            89:      3.          Convert the home directory to a project root directory
        !            90:          by typing
        !            91:               /usr/new/mkproject  -d  \^
        !            92: 
        !            93:      4.          Execute the `.profile' file by typing
        !            94:               .  .profile
        !            95: 
        !            96:      Global Operations
        !            97: 
        !            98:      The mechanism for executing a command over        an entire
        !            99:      software package is provided by the _p_e_x_e_c command.      By label-
        !           100:      ing each project directory        according to the type of activity
        !           101:      that it supports, global operations can be        restricted to
        !           102:      specific directories. These labels        are known as _t_y_p_e _l_a_b_e_l_s.
        !           103:      In        some instances, the directories affected by a global com-
        !           104:      mand must be processed in a particular order. This        ordering
        !           105:      is        achieved by appending priorities to type labels. For
        !           106:      example, if the project directories `include', `cmd1',
        !           107:      `cmd2', `lib1', and `lib2'        have the following labels,
        !           108: 
        !           109:               include        print.0, src, update.100, include
        !           110:               cmd1           print.1, src, update.300, cmdsrc
        !           111:               cmd2           print.1, src, update.300, cmdsrc
        !           112:               lib1           print.2, src, update.200, libsrc
        !           113:               lib2           print.2, src, update.200, libsrc
        !           114: 
        !           115:      the entire        software package can be updated by the command
        !           116: 
        !           117:          pexec  -Tupdate  make update
        !           118: 
        !           119:      in        the order `include', `lib1', `lib2', `cmd1', `cmd2'.
        !           120: 
        !           121:      Global commands can be made even more precise by using
        !           122:      boolean expressions on type labels        to select project direc-
        !           123:      tories. The formal        definition of a boolean type label
        !           124:      expression        is
        !           125: 
        !           126: 
        !           127: 
        !           128: 
        !           129: Printed        6/22/83              5/20/83                            2
        !           130: 
        !           131: 
        !           132: 
        !           133: 
        !           134: 
        !           135: 
        !           136: SPMSINTRO(1P)      UNIX Programmer's Manual        SPMSINTRO(1P)
        !           137: 
        !           138: 
        !           139: 
        !           140:            _E -> _E or _E    | _E and _E  | not _E  | ( E ) | id
        !           141: 
        !           142:      where _E is      a boolean expression; and, or, and not are
        !           143:      boolean operators;        and id is a type label.  Or and and are
        !           144:      left-associative. Or has the lowest precedence, then and,
        !           145:      then not. In terms        of entering the boolean expression on the
        !           146:      command line, or is represented by        the character `|', and by
        !           147:      the character `&',        and not by `!'. Since these characters,
        !           148:      together with `(' and `)',        are meaningful to the command
        !           149:      shell, it is good idea to enclose the whole expression in
        !           150:      quotes. Even if this is done, the `!' character must still
        !           151:      be        escaped by a backslash `\' if it precedes a type label to
        !           152:      prevent it        from being interpreted by the _c_s_h history mechan-
        !           153:      ism. The command
        !           154: 
        !           155:          pexec  "-Tprint&(libsrc|cmdsrc)"  'pr *.h *.c'  | lpr
        !           156: 
        !           157:      prints the        source code in the command and library direc-
        !           158:      tories, but not the directory containing header files.
        !           159:      Alternatively,
        !           160: 
        !           161:          pexec  "-Tprint&\!include"  'pr *.h *.c'  | lpr
        !           162: 
        !           163:      achieves the same result.
        !           164: 
        !           165:      Project Pathnames
        !           166: 
        !           167:      _P_r_o_j_e_c_t _p_a_t_h_n_a_m_e_s provide a convenient way        for accessing a
        !           168:      particular        directory or file within a project hierarchy. A
        !           169:      project pathname is formed        by a succession of project names
        !           170:      separated by `^' characters, followed by the name of the
        !           171:      directory or file.        For instance, to describe a file `main.c'
        !           172:      in        the project directory `work' in the project `spms', the
        !           173:      project pathname is
        !           174: 
        !           175:          ^spms^work/main.c
        !           176: 
        !           177:      The project at the        top of each user's project hierarchy is
        !           178:      called the        _r_o_o_t _p_r_o_j_e_c_t and is given the special name `^'.
        !           179:      If        a project pathname begins with the character `^', it is
        !           180:      interpreted relative to the root project and is called an
        !           181:      _a_b_s_o_l_u_t_e _p_r_o_j_e_c_t _p_a_t_h_n_a_m_e.   However, a project pathname not
        !           182:      beginning with `^'        is interpreted with respect to the
        !           183:      current working project and is therefore called a _r_e_l_a_t_i_v_e
        !           184:      _p_r_o_j_e_c_t _p_a_t_h_n_a_m_e. The parent of the working project is
        !           185:      called `....' and the alternative name for        the current pro-
        !           186:      ject is `...'.
        !           187: 
        !           188:      Project pathnames may have        a prepended ~_u_s_e_r_n_a_m_e, and an
        !           189:      appended regular pathname.        For example, the pathname
        !           190: 
        !           191: 
        !           192: 
        !           193: 
        !           194: 
        !           195: Printed        6/22/83              5/20/83                            3
        !           196: 
        !           197: 
        !           198: 
        !           199: 
        !           200: 
        !           201: 
        !           202: SPMSINTRO(1P)      UNIX Programmer's Manual        SPMSINTRO(1P)
        !           203: 
        !           204: 
        !           205: 
        !           206:          ~pjn^spms^work/old/main.c
        !           207: 
        !           208:      represents        the path to `main.c' located in the directory
        !           209:      `old' in the project `spms' owned by `pjn'.
        !           210: 
        !           211: OPTIONS
        !           212: ENVIRONMENT VARIABLES
        !           213:      PROJECT        Absolute pathname of the current working
        !           214:                     project root directory.  This variable is
        !           215:                     set by _c_h_p_r_o_j_e_c_t.
        !           216: 
        !           217:      ROOTPROJECT     Absolute pathname of the root project direc-
        !           218:                     tory. The default is the user's home direc-
        !           219:                     tory.
        !           220: 
        !           221: FILES
        !           222:      ...            Project link directory.
        !           223: 
        !           224: SEE ALSO
        !           225:      chproject(1P), mkmf(1P), mkproject(1P), pcp(1P), pd(1P),
        !           226:      pdiff(1P),        pexec(1P), pfind(1P), pgrep(1P), phelp(1P),
        !           227:      plog(1P), pman(1P), pmkdir(1P), pmv(1P), ppd(1P),
        !           228:      prmdir(1P), ptest(1P), pwp(1P), rmproject(1P)
        !           229:      Peter J. Nicklin  _T_h_e _S_P_M_S  _S_o_f_t_w_a_r_e _P_r_o_j_e_c_t _M_a_n_a_g_e_m_e_n_t _S_y_s_-
        !           230:      _t_e_m
        !           231: 
        !           232: AUTHOR
        !           233:      Peter J. Nicklin
        !           234: 
        !           235: BUGS
        !           236:      At        present, project pathnames are only recognized by SPMS
        !           237:      commands.
        !           238: 
        !           239:      Since the Bourne shell, _s_h, recognizes the    `^' character as
        !           240:      an        alternative pipe symbol, Bourne shell users must type
        !           241:      `\^' instead.
        !           242: 
        !           243: 
        !           244: 
        !           245: 
        !           246: 
        !           247: 
        !           248: 
        !           249: 
        !           250: 
        !           251: 
        !           252: 
        !           253: 
        !           254: 
        !           255: 
        !           256: 
        !           257: 
        !           258: 
        !           259: 
        !           260: 
        !           261: Printed        6/22/83              5/20/83                            4
        !           262: 
        !           263: 
        !           264: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.