/ossify

A toy project for applying open source licenses and conventions to a directory

Primary LanguageRoffMIT LicenseMIT

ossify

build goreleaser

ossify (n.)
  • to change (a material, such as cartilage) into bone
  • to make rigidly conventional and opposed to change

⚠️ This is an early project that I'm using to become familiar with Go. Contributions are welcome, but this isn't yet to be considered "ready" for anyone to even look at.

Open Source Software often contain common project layouts and components across multiple projects, languages, or groups. This tool aims to provide a means to automate and/or verify projects using conventions; those built into the tool and those defined by the user.

See KriaSoft/Folder-Structure-Conventions and Standard Go Project Layout for some examples of conventional directory structure.

This project aims to go one step further and include templating and configuration for common files in open source software. Examples include:

  • .gitignore
  • README.md
  • LICENSE
  • CONTRIBUTING.md
  • GitHub Issues and Pull Request templates

Examples

Licenses

Find licenses by keyword

License keywords

  • copyleft
  • discouraged
  • international
  • miscellaneous
  • non-reusable
  • obsolete
  • osi-approved
  • permissive
  • popular
  • redundant
  • retired
  • special-purpose

Example:

ossify license --keyword popular
Apache-2.0          (Apache License, Version 2.0)
BSD-2               (BSD 2-Clause License)
BSD-3               (BSD 3-Clause License)
CDDL-1.0            (Common Development and Distribution License, Version 1.0)
EPL-1.0             (Eclipse Public License, Version 1.0)
GPL-2.0             (GNU General Public License, Version 2.0)
GPL-3.0             (GNU General Public License, Version 3.0)
LGPL-2.1            (GNU Lesser General Public License, Version 2.1)
LGPL-3.0            (GNU Lesser General Public License, Version 3.0)
MIT                 (MIT/Expat License)
MPL-2.0             (Mozilla Public License, Version 2.0)

Write out license text to file

ossify license MIT > LICENSE
# or, with --id switch. Both are case-insensitive.
ossify license --id mit > LICENSE

Search for specific license text

ossify license --search apache
Apache-1.1          (Apache Software License, Version 1.1)
Apache-2.0          (Apache License, Version 2.0)

View details for specific license

ossify license MIT --details
MIT                 (MIT/Expat License)
osi-approved, popular, permissive

Common names
  * MIT
  * Expat

License Standards
  * DEP5       MIT
  * DEP5       Expat
  * SPDX       MIT
  * Trove      License :: OSI Approved :: MIT License

Links
  * https://opensource.org/licenses/mit (OSI Page)
  * https://tldrlegal.com/license/mit-license (tl;dr legal)
  * https://en.wikipedia.org/wiki/MIT_License (Wikipedia page)

License

This project is Licensed MIT

All included license text is Licensed CC0 1.0 Universal