Giter VIP home page Giter VIP logo

docshell's Introduction

Build Status

docshell

A novel approach to documenting command line tools written in shell-script.

Rationale

Typically in Software development, documentation has a tendency to be perceived as being boring to do all fall behind the regular development process.

By keeping documentation tightly knit to the source code, we increase the likelihood of the documentation being up-to-date; For more advanced programming languages, there's already lots of good frameworks for this.

Shell-scripts prove to be an interesting domain in that aspect -- shell-scripts are typically expected to be portable across operating systems, shell language variants; There also, de facto, doesn't exist a single authoritative specification on how the "language"(s) actually works, and different vendors have over time implemented different functionality.

Goals

Three important factors are:

  • portability (being able to run on a diverse set of operating systems and shell dialects)

  • low dependency on external utilities (not assuming that specific tools are installed in the environment the script is being run in),

  • as well as having a small footprint. (low SLOC for the framework itself)

By placing the documentation at the top of the file, it is the first thing a developer sees when opening up the script in the editor -- this will hopefully provide a "hint" as to update the documentation if details in the script change.

Also, by attempting to produce good-looking --help output, combined with dynamic features (such as default value variable expansion) we further hope that the developer in question will see the point in keeping the documentation always-up-to-date.

Compatability

Compatability with various shells and operating systems are automatically tested and reports are published on the following Wiki page:

Further reading

Author

Martin Kjellstrand [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.