Provided by: sloccount_2.26-5.2build1_amd64 bug

NAME

       sloccount - count source lines of code (SLOC)

SYNOPSIS

       sloccount   [--version]   [--cached]   [--append]  [  --datadir  directory  ]  [--follow]  [--duplicates]
       [--crossdups] [--autogen] [--multiproject]  [--filecount]  [--wide]  [--details]  [  --effort  F  E  ]  [
       --schedule  F  E  ] [ --personcost cost ] [ --overhead overhead ] [ --addlang language ] [ --addlangall ]
       [--] directories

DESCRIPTION

       sloccount counts the physical source lines of code (SLOC) contained in descendants of the  specified  set
       of  directories.   It  automatically  determines  which files are source code files, and it automatically
       determines the computer language used in each file.  By  default  it  summarizes  the  SLOC  results  and
       presents  various  estimates  (such  as  effort and cost to develop), but its output can be controlled by
       various options.

       If you give sloccount a list of two or more directories, the counts will be broken up according  to  that
       list.   There  is  one important limitation: the basenames of the directories given as parameters must be
       different, because those names are used to group summary information.  Thus,  you  can't  run  "sloccount
       /usr/src/hello  /usr/local/src/hello".   This  limitation  only  applies  to  parameters  of  sloccount -
       subdirectories descended from the top directories can have the same basename.

       If you give sloccount only a single  directory,  sloccount  tries  to  automatically  find  a  reasonable
       breakdown  for  purposes of reporting (so it'll produce a useful report).  In this case, if the directory
       has at least two subdirectories, then those subdirectories will be used as the breakdown.  If the  single
       directory  contains  files  as  well  as directories (or if you give sloccount some files as parameters),
       those files will be assigned to the directory "top_dir" so you can tell them apart from  other  contents.
       Finally, if there's a subdirectory named "src", then that subdirectory is again broken down, with all the
       further  subdirectories  prefixed  with  "src_".   Thus, if directory "X" has a subdirectory "src", which
       contains subdirectory "modules", sloccount will report a separate count for "src_modules".

       sloccount normally considers all descendants of  these  directories,  though  unless  told  otherwise  it
       ignores symbolic links.

       sloccount  is  the  usual front-end of the package of tools named "SLOCCount".  Note that the name of the
       entire package has capital letters, while the name of this front-end program does not.

       sloccount will normally report estimates of schedule time, effort, and cost, and for single  projects  it
       also estimates the average number of active developers.  These are merely estimates, not etched in stone;
       you can modify the parameters used to improve the estimates.

OPTIONS

       --version   Report  the  version number of SLOCCount and immediately exit.  This option can't be usefully
                   combined with any other option.

       --cached    Do not recalculate; instead, use cached results  from  a  previous  execution.   Without  the
                   --cached or --append option, sloccount automatically removes the data directory and recreates
                   it.

       --append    Do not remove previous calculations from the data directory; instead, add the analysis to the
                   current contents of the data directory.

       --datadir directory
                   Store or use cached data in the given data directory; default value is "~/.slocdata".

       --follow    Follow symbolic links.

       --duplicates
                   Count  all  duplicates.   Normally, if files have equal content (as determined using MD5 hash
                   values), only one is counted.

       --crossdups Count duplicates if they occur in different portions of the  breakdown.   Thus,  if  the  top
                   directory contains many different projects, and you want the duplicates in different projects
                   to count in each project, choose this option.

       --autogen   Count  source  code  files  that  appear  to  be automatically generated.  Normally these are
                   excluded.

       --multiproject
                   The different directories represent different projects; otherwise, it's assumed that  all  of
                   the  source  code belongs to a single project.  This doesn't change the total number of files
                   or SLOC values, but it does affect the effort and schedule  estimates.   Given  this  option,
                   effort  is  computed  separately  for each project (and then summed), and the schedule is the
                   estimated schedule of the largest project.

       --filecount Display counts of files instead of SLOC.

       --wide      Display in the "wide" (tab-separated) format.

       --details   Display details, that is, results for every source code file.

       --effort F E
                   Change the factor and exponent for the effort model.  Effort (in person-months)  is  computed
                   as F*(SLOC/1000)^E.

       --schedule F E
                   Change  the  factor and exponent for the schedule model.  Schedule (in months) is computed as
                   F*(effort)^E.

       --personcost cost
                   Change the average annual salary to cost.

       --overhead overhead
                   Change the overhead value to overhead.  Estimated cost is computed as effort *  personcost  *
                   overhead.

       --addlang language
                   Add  a language not considered by default to be a ``language'' to be reported.  Currently the
                   only legal values for language are "makefile",  "sql",  and  "html".   These  files  are  not
                   normally included in the SLOC counts, although their SLOCs are internally calculated and they
                   are  shown  in the file counts.  If you want to include more than one such language, do it by
                   passing --addlang more than once, e.g., --addlang makefile --addlang sql.

       --addlangall
                   Add all languages not normally included in final reports.

NOTES

       As with many other programs using Unix-like options, directories whose names begin with  a  dash  (``-'')
       can  be  misinterpreted  as  options.  If the directories to be analyzed might begin with a dash, use the
       double-dash (``- -'') to indicate the end of the option list before listing the directories.

BUGS

       Filenames with embedded newlines (in the directories or their descendants) won't  be  handled  correctly;
       they  will  be  interpreted  as  separate  filenames  where the newlines are inserted.  An attacker could
       prevent sloccount from working by creating filenames of the form /normal/directory ...  NEWLINE/dev/zero.
       Such filenames are exceedingly rare in source code because they're a pain to work with using other tools,
       too.   Future  versions  of sloccount may internally use NUL-separated filenames (like GNU find's -print0
       command) to fix this.

       There are many more languages not yet handled by SLOCCount.

       SLOCCount only reports physical source lines of code.  It would be very useful if it  could  also  report
       logical  lines  of  code,  and  perhaps  other  common  metrics  such as McCabe's complexity measures and
       complexity density (complexity/SLOC for each function or procedure).

SEE ALSO

       See the SLOCCount website at http://www.dwheeler.com/sloccount.  Note that more detailed documentation is
       available both on the website and with the SLOCCount package.

AUTHOR

       David A. Wheeler (dwheeler@dwheeler.com).

SLOCCount                                         31 July 2004                                      SLOCCOUNT(1)