Provided by: sloccount_2.26-5.2_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).