tokei/README.md
2016-10-27 11:59:56 +01:00

7.3 KiB

Tokei (時計)

Tokei is a program that allows you to count code, quickly.

Example Output

This is tokei running on it's own directory

$ tokei .
-------------------------------------------------------------------------------
 Language            Files        Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 Autoconf                1            9            7            1            1
 Handlebars              1          235          218            0           17
 JSON                    1         1205         1205            0            0
 Markdown                4          553          553            0            0
 Rust                   12         1803         1080          517          206
 TOML                    1           86           70            0           16
 YAML                    2           71           68            3            0
-------------------------------------------------------------------------------
 Total                  22         3962         3201          521          240
-------------------------------------------------------------------------------

Documentation

Table of Contents

Canonical Source

The canonical source of this repo is hosted on GitHub. If you have a GitHub account, please make your issues, and pull requests there.

Installation

Automatic

If you have cargo 0.6.0>= installed just run the cargo install command.

$ cargo install tokei

Manual

Fedora 64 bit

Install rust and cargo from either the official page or use a copr repo such as Rust

$ dnf copr enable phnxrbrn/tokei
$ dnf install tokei

Other

$ git clone https://github.com/Aaronepower/tokei.git
$ cd tokei
$ cargo build --release
Linux
# sudo mv target/release/tokei /usr/local/bin
OSX
# sudo mv target/release/tokei /usr/local/bin/tokei
Windows
  • Create a folder for tokei
  • search for env
  • open "edit your enviroment variables"
  • edit PATH
  • append folder path to the end of the string ie: <path_stuff_here>;C:/tokei/;

How to use Tokei

Basic usage

This is the basic way to use tokei. Which will report on the code in ./foo and all subfolders.

$ tokei ./foo

Multiple folders

To have tokei report on multiple folders in the same call simply add a comma, or a space followed by another path.

$ tokei ./foo ./bar ./baz
$ tokei ./foo, ./bar, ./baz

Excluding folders

The --exclude option accepts a comma-separated list of strings. Any file or directory containing a term will be ignored:

$ tokei ./foo --exclude node_modules,.cache,tmp target

Sorting output

By default tokei sorts alphabetically by language name, however using --sort tokei can also sort by any of the columns. blanks, code, comments, lines

$ tokei ./foo --sort code

Outputing file statistics

By default tokei only outputs the total of the languages, and using --files flag tokei can also output individual file statistics.

$ tokei ./foo --files

Outputting into different formats

Tokei normally outputs into a nice human readable format designed for the terminal. There is also using the --output option various other formats that are more useful for bringing the data into another program.

Current supported formats

  • JSON --output json
  • YAML --output yaml
  • TOML --output toml
  • CBOR --output cbor
$ tokei ./foo --output json

Reading in stored formats

Tokei can also take in the outputted formats added the previous results to it's current run. Tokei can take either a path to a file, the format passed in as a value to the option, or from stdin.

$ tokei ./foo --input ./stats.json

Options

Tokei 4.3.0
Aaron P. <theaaronepower@gmail.com>
Count Code, Quickly.

USAGE:
    Tokei [FLAGS] [OPTIONS] <input>...

FLAGS:
    -f, --files        Will print out statistics on individual files.
    -h, --help         Prints help information
    -l, --languages    Prints out supported languages and their extensions.
    -V, --version      Prints version information
    -v                 Set verbose output level: 1 for File IO errors 2: for unknown extensions

OPTIONS:
    -e, --exclude <exclude>     Ignore all files & directories containing the word.
    -i, --input <file_input>    Gives statistics from a previous tokei run. Can be given a file path, or "stdin" to
                                read from stdin.
    -o, --output <output>       Outputs Tokei in a specific format. [values: cbor, json, toml, yaml]
    -s, --sort <sort>           Will sort based on column [values: files, lines, blanks, code, comments]

ARGS:
    <input>...    The input file(s)/directory(ies)

Supported Languages

If there is a language that you want added submit a pull request with the following information

  • Name of language
  • File Extension
  • The comment syntax (Does it have block comments? is it the same as C?)
ActionScript
Ada
Assembly
ASP
ASP.Net
Autoconf
BASH
Batch
C
C Header
Clojure
CoffeeScript
ColdFusion
ColdFusion CFScript
Coq
C++
C++ Header
C#
C Shell
CSS
D
Dart
Device Tree
Erlang
Forth
FORTRAN Legacy
FORTRAN Modern
GLSL
Go
Handlebars
Haskell
HTML
HEX
Idris
Intel HEX
Isabelle
JAI
Java
JavaScript
Julia
JSON
JSX
Kotlin
Lean
LESS
LD Script
LISP
Lua
Makefile
Markdown
Mustache
Nim
Objective C
Objective C++
OCaml
Oz
Pascal
Perl
Polly
PHP
Protocol Buffers
Prolog
Python
QCL
R
Razor
Ruby
Ruby HTML
Rust
ReStructuredText
Sass
Scala
Standard ML
SQL
Swift
TeX
Plain Text
TOML
TypeScript
Vim Script
Unreal Script
Wolfram
XML
YAML
Zsh

Common issues

Tokei says I have a lot of D code, but I know there is no D code!

This is likely due to gcc generating .d files. Until the D people decide on a different file extension, you can always exclude .d files using the -e --exclude flag like so

$ tokei . -e .d

(C) Copyright 2015 by Aaron Power and contributors

See CONTRIBUTORS.md for a full list of contributors.

Tokei is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENCE-APACHE, LICENCE-MIT for more information.