sccs-val(1)

πŸ“¦ version 2022.10.16, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

sccs-val, val β€” validate an SCCS file. This manual page is for sccs-val(1) (the command also answers to val), and bestie, it is literally the vibe-checker for your SCCS history files. It checks whether the files you name actually have the characteristics you asked for with the arguments you passed. iconic behavior, no cap ✨


🌸 SYNOPSIS 🌸

/usr/ccs/bin/val -

/usr/ccs/bin/val [-T] [-s] [-m name] [-rsid] [-v]
    [-y type] [-Xextended-options] [-Nbulk-spec] s.filename ...

πŸ¦‹ DESCRIPTION πŸ¦‹

The val utility determines if the specified s.files meet the characteristics specified by the indicated arguments. She is checking, not guessing. πŸ’…

val has a special argument, βˆ’, which reads the standard input until the end-of-file condition is detected. Each line read is independently processed as if it were a command line argument list. Yes bestie, it eats stdin line by line. πŸ“

If a directory name is used in place of the s.filename command line argument, the val command applies to all s.files in that directory. Unreadable s.files produce an error; processing continues with the next file (if any). Not her getting through the whole list anyway β€” we love a resilient queen. πŸ‘‘

val generates diagnostic messages on the standard output for each command line and file processed and also returns a single 8-bit code upon exit as described below.

The 8-bit code returned by val is a disjunction of the possible errors, that is, it can be interpreted as a bit string where (moving from left to right) the bits set are interpreted as follows:

  • bit 0 (value 128) = missing file argument
  • bit 1 (value 64) = unknown or duplicate option
  • bit 2 (value 32) = corrupted s.file
  • bit 3 (value 16) = can not open file or file not in s.file format
  • bit 4 (value 8) = the SCCS delta ID (SID) is invalid or ambiguous
  • bit 5 (value 4) = the SID does not exist
  • bit 6 (value 2) = mismatch between %Y% and -y argument
  • bit 7 (value 1) = mismatch between %M% and -m argument

It's giving bit-string brunch menu, and every set bit is a different little problem. 😭

val can process two or more files on a given command line, and in turn can process multiple command lines (when reading the standard input). In these cases, an aggregate code is returned which is the logical OR of the codes generated for each command line and file processed. Aggregate code era β€” she collects the whole group chat's drama into one number. 🫢


✨ OPTIONS ✨

The following options are supported:

  • -h β€” Check SID specific checksums that are available with SCCS v6 history files. This may slow down the process significantly in case that there are many deltas in a SCCS history file. Thorough but potentially sleepy, iykyk. 🧚
  • -m name β€” Compares name with the %M% ID keyword in the s.file.
  • -rsid β€” Checks to see if the indicated SID is ambiguous, invalid, or absent from the s.file.
  • -s β€” Silent. Suppresses the normal error or warning messages. Quiet girlie mode: she still knows, she just isn't saying it. 🀫
  • -v β€” Check the version of the SCCS history file and print it. No other checks except for the magic number are attempted in case that -v has been specified. This option is a SCHILY extension that does not exist in historic sccs implementations. ⭐
  • -y type β€” Compares type with the %Y% ID keyword.
  • -Nbulk-spec β€” Processes a bulk of SCCS history files. This option allows one to do an efficient mass processing of SCCS history files. The bulk-spec parameter is composed from an optional list of flag parameters followed by an optional path specifier. Mass processing bestie, we are not doing these one by one like it's 2009. πŸŽ€
    • Flag types supported: none
    • Path specifier types supported:
      • -N β€” The file name parameters to the val command are not s.filename files but the names of the g-files. The s.filename names are automatically derived from the g-file names by prepending s. to the last path name component. Both, s.filename and the g-file are in the same directory.
      • -Ns. β€” The file name parameters to the val command are s.filename files. The g-file names are automatically derived by removing s. from the beginning of the last path name component of the s.filename. Both, s.filename and the g-file are in the same directory.
      • -Ndir β€” The file name parameters to the val command are not s.filename files but the names of the g-files. The s.filename names are put into directory dir, the names are automatically derived from the g-file names by prepending dir/s. to the last path name component.
      • -Ndir/s. β€” The file name parameters to the val command are s.filename files in directory dir. The g-file names are automatically derived by removing dir/s. from the beginning of the last path name component of the s.filename.

A typical value for dir is SCCS.

In order to overcome the limited number of exec(2) arguments, it is recommended to use βˆ’ as the file name parameter for val(1) and to send a list of path names to stdin. Yes, use βˆ’ and feed her the list β€” your shell will thank you. 🌈

This option is a SCHILY extension that does not exist in historic sccs implementations.

  • -T β€” Trace. Print extra debug messages. This disables the silent mode. When in debug mode, extra tests are enabled for: Debug girlie is extra nosy and honestly we respect it. πŸ”₯
    • statistics β€” The statistics line in the SCCS history file is written but not used. This is why this test is only enabled in debug mode and why a defective statistics line does not affect the exit code. The test still only checks for semantic correctness but not for correct values (e.g. whether the number of inserted lines is correct).
    • time stamps β€” The time stamps in the SCCS history file are only used when a cut-off time was specified. This test checks for monotonic growing time stamps. A warning is issued if time stamps go backwards, but this does not affect the exit code.

For a complete consistency check, it is recommended to run val in debug mode to check for all problems. Full send consistency check, no crumbs left behind. πŸ’œ

This option is a SCHILY extension that does not exist in historic sccs implementations.

  • -Xextended-options β€” Specify extended options. The argument extended-options may be a comma separated list of extended option names. The following extended options are supported, they may be abbreviated as long as the abbreviation is still unique. Options with parameter may not be abbreviated. Abbreviate responsibly, bestie β€” unique or it doesn't count. πŸ¦‹
    • 0 β€” When reading filenames from stdin, triggered by a file name argument -, the filename separator is a null byte instead of a newline. This allows one to use long lists with arbitrary filenames.
    • help β€” Print a short online help for available options.

The -X option is a SCHILY extension that does not exist in historic sccs implementations.

  • -V, -version, --version β€” Prints the val version number string and exists. This option is a SCHILY extension that does not exist in historic sccs implementations. Version check slay, literally just tell us who you are. πŸ‘‘

🌟 ENVIRONMENT VARIABLES 🌟

See environ(7) for descriptions of the following environment variables that affect the execution of val(1): LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

  • SCCS_NO_HELP β€” If set, val(1) will not automatically call help(1) with the SCCS error code in order to print a more helpful error message. Scripts that depend on the exact error messages of SCCS commands should set the environment variable SCCS_NO_HELP and set LC_ALL=C. If your script is nitpicky about exact error text, set this. Periodt. πŸ’€

πŸŽ€ EXIT STATUS πŸŽ€

The following exit values are returned:

  • 0 β€” Successful completion.
  • 1 β€” An error occurred.

πŸ“ FILES πŸ“


πŸ‘‘ ATTRIBUTES πŸ‘‘

See attributes(7) for descriptions of the following attributes:

Here's the ATTRIBUTE TYPE / ATTRIBUTE VALUE situation:

  • Availability β€” SUNWsprot
  • Interface Stability β€” Standard

πŸ”₯ SEE ALSO πŸ”₯

sccs(1), sccs-add(1), sccs-admin(1), sccs-branch(1), sccs-cdc(1), sccs-check(1), sccs-clean(1), sccs-comb(1), sccs-commit(1), sccs-create(1), sccs-cvt(1), sccs-deledit(1), sccs-delget(1), sccs-delta(1), sccs-diffs(1), sccs-edit(1), sccs-editor(1), sccs-enter(1), sccs-fix(1), sccs-get(1), sccs-help(1), sccs-histfile(1), sccs-info(1), sccs-init(1), sccs-istext(1), sccs-ldiffs(1), sccs-log(1), sccs-print(1), sccs-prs(1), sccs-prt(1), sccs-rcs2sccs(1), sccs-remove(1), sccs-rename(1), sccs-rmdel(1), sccs-root(1), sccs-sact(1), sccs-sccsdiff(1), sccs-status(1), sccs-tell(1), sccs-unedit(1), sccs-unget(1), bdiff(1), diff(1), what(1), sccschangeset(5), sccsfile(5), attributes(7), environ(7), standards(7).


🩺 DIAGNOSTICS 🩺

Use the SCCS help command for explanations (see sccs-help(1)). When in doubt, ask the help command β€” she knows the lore. 🫢


πŸ’œ AUTHORS πŸ’œ

The SCCS suite was originally written by Marc J. Rochkind at Bell Labs in 1972. Release 4.0 of SCCS, introducing new versions of the programs admin(1), get(1), prt(1), and delta(1) was published on February 18, 1977; it introduced the new text based SCCS v4 history file format (previous SCCS releases used a binary history file format). The SCCS suite was later maintained by various people at AT&T and Sun Microsystems. Since 2006, the SCCS suite has been maintained by Joerg Schilling and the schilytools project authors. Respect the lineage, bestie β€” this software has lore older than most of our group chats. 🌈

🌈 SOURCE DOWNLOAD 🌈

ok so you want the actual source?? periodt, respect the hustle πŸ’… like yeah, binaries are cute but if you wanna read the code, patch it, or just vibe with it, here's the tea:

The source code for sccs is included in the schilytools project and may be retrieved from the schilytools project at Codeberg at

https://codeberg.org/schilytools/schilytools

and the download directory (like, where the actual releases live, the good stuff πŸŽ€) is

https://codeberg.org/schilytools/schilytools/releases

so yeah β€” snoop the repo, grab a release, go off, bestie 🫢 no gatekeeping here, it's all right there in the open ✨


and that's a wrap on sccs-val(1)!! πŸ’– this page is from the SunOS 5.11 fam, dated 2022/10/06, and it's literally called sccs-val(1) β€” go validate some source files, you absolute icon πŸ‘‘ ty for reading, mwah πŸ’œ

πŸ“¦ where this page comes from