kamaji

Kamaji is the boilerman! He generates boilerplate code! ๐Ÿ› 

Kamaji CLI

What? ๐Ÿ› ๏ธ

  • Kamaji is the boilerman! He generates boilerplate code! In other words, Kamaji is a CLI program for quickly initiating new programming projects

Why? ๐Ÿค”

  • Productivity! Get started quickly and never write the same code twice
  • Kamaji was initially developed as a way to learn the Crystal programming language

How? โ“

  • Its easy! You can output Kamaji's help menu for usage reminders by running kamaji -h, kamaji --help, or simply kamaji
  • Initiating a new project is as easy as knowing what you would like to name your project and what language you would like to work with; use the build command to create a new project: kamaji build LANG TYPE (NAME)
  • Ex. kamaji build elixir app my_elixir_app
  • Usage conituned below

Table of Contents

Install

Install from source

  git clone https://gitlab.com/taylorosbourne/kamaji.git
  cd kamaji
  crystal build src/kamaji.cr -o kamaji -p --release --no-debug
  chmod +x ./kamaji # make executbale
  mv ./kamaji ~/.crystal/bin/kamaji # move executable
  export PATH=\"$HOME/.crystal/bin:$PATH\" # update path

Usage

Usage: kamaji build LANG TYPE NAME

  Initializes a project folder as a git repository and 
  default folder structure for programming projects.

    -h, --help                       show this help

  LANG Options
    - bash
    - crystal
    - deno
    - elixir
    - fish
    - go
    - node
    - ruby
    - rust
    - scala
  
  TYPE Options
    - app
    - cli
    - lib
    - script
    - wasm
  
  Note:
    Not all TYPE options are valid with all LANG options.  
    Read the about valid options here https://gitlab.com/taylorosbourne/kamaji

Ex. kamaji build elixir app my_elixir_app

Supported Languages/Runtimes

AssemblyScript ๐Ÿš€ Docs | Source

AssemblyScript compiles a strict variant of TypeScript(a typed superset of JavaScript) to WebAssembly using Binaryen. Its architecture differs from a JavaScript VM in that it compiles a program ahead of time, quite similar to your typical C compiler. One can think of it as TypeScript syntax on top of WebAssembly instructions, statically compiled, to produce lean and mean WebAssembly binaries.

Command example: kamaji build assemblyscript app my_assemblyscript_app

Built project:

my_assemblyscript_app
โ”œโ”€โ”€ assembly
โ”‚   โ””โ”€โ”€ index.ts
โ”‚   โ””โ”€โ”€ tsconfig.json
โ”œโ”€โ”€ build
โ”‚   โ””โ”€โ”€ .gitignore
โ”œโ”€โ”€ tests
โ”‚   โ””โ”€โ”€ index.js
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ asconfig.json
โ”œโ”€โ”€ index.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

Bash ๐Ÿ’ฒ Docs | Source

Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell. First released in 1989, it has been used as the default login shell for most Linux distributions.

Command example: kamaji build bash script my_bash_script

Built project:

my_bash_script
โ”œโ”€โ”€ bin
โ”‚   โ””โ”€โ”€ my_bash_script.sh
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

Crystal ๐Ÿ”ฎ Docs | Source

Crystal is a statically type-checked programming language with syntax similar to Ruby. Kamaji is written in Crystal, and makes heavy use of code in crystal's init command for codegen. Initializing a Crystal project from Kamaji will essentially produce the same files as crystal init app with the addition of Dockerfile, .gitlab-ci.yml, and more.

Command example: kamaji build crystal app my_crystal_app

Built project:

my_crystal_app
โ”œโ”€โ”€ spec
โ”‚   โ”œโ”€โ”€ my_crystal_app_spec.cr
โ”‚   โ””โ”€โ”€ spec_helper.cr
โ”œโ”€โ”€ src
โ”‚   โ””โ”€โ”€ my_crystal_app.cr
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ shard.yml

Deno ๐Ÿฆ• Docs | Source

Deno is a secure runtime for JavaScript and TypeScript. Deno is written in Rust and actively maintained/developed by Ryan Dahl, creator of Nodejs. Although both Node, and Deno are JS runtimes, they vary greatly. Check the Deno documentation/style guide for information on how/why Deno programs do not follow the same conventions as Node programs.

Command example: kamaji build deno app my_deno_app

Built project:

my_deno_app
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ mod.ts
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ types.d.ts

Elixir ๐Ÿงช Docs | Source

Elixir is a dynamic, functional programming language. Elixir leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems. Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries.

Command example: kamaji build elixir app my_elixir_app

Built project:

my_elixir_app
โ”œโ”€โ”€ lib
โ”‚   โ””โ”€โ”€ my_elixir_app.ex
โ”œโ”€โ”€ test
โ”‚   โ”œโ”€โ”€ my_elixir_app_test.exs
โ”‚   โ””โ”€โ”€ test_helpers.exs
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ formatter.exs
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ mix.exs
โ””โ”€โ”€ README.md

Fish ๐Ÿ  Docs | Source

Fish (or Friendly Interactive Shell) is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family. Fish suggests commands as you type based on history and completions, just like a web browser. Watch out, Netscape Navigator 4.0!

Command example: kamaji build fish script my_fish_script

Built project:

my_fish_script
โ”œโ”€โ”€ bin
โ”‚   โ””โ”€โ”€ my_fish_script.fish
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md

Go ๐Ÿน Docs | Source

Go is an open source, compiled programming language developed by a team at Google and many contributors from the open source community. Go powers industry-changing technologies like Docker and Kubernetes. Go is distributed under a BSD-style license.

Command example: kamaji build go app my_go_app

Built project:

my_go_app
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ go.mod
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ main.go
โ””โ”€โ”€ README.md

Node ๐Ÿ”Œ Docs | Source

Node is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node has an enormous community that is, in many ways, shaping the way modern web applications are built. Due to JavaScript's outrageous popularity, many dependable libraries are built for use with Node.

Command example: kamaji build node app my_node_app

Built project:

my_node_app
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ index.ts
โ”‚   โ””โ”€โ”€ types.d.ts
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .eslintrc
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ .prettierignore
โ”œโ”€โ”€ .prettierrc
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ tsconfig.json

Ruby ๐Ÿ’Ž Docs | Source

Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. Ruby creates a developer experience unlike any other (except maybe Crystal...), a language truly worthy of it's tagline: A PROGRAMMER'S BEST FRIEND.

Command example: kamaji build ruby app my_ruby_app

Built project:

my_ruby_app
โ”œโ”€โ”€ spec
โ”‚   โ””โ”€โ”€ spec_helper.rb
โ”œโ”€โ”€ src
โ”‚   โ””โ”€โ”€ main.rb
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ .rubocop_airbnb.yml
โ”œโ”€โ”€ .rubocop.yml
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ Gemfile
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

Rust ๐Ÿฆ€ Docs | Source

Rust is fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages. Rustโ€™s type system and ownership model guarantee memory-safety and thread-safety โ€” enabling you to eliminate many classes of bugs at compile-time. Rust placed at the top of StackOverflow's most loved programming language of 2020. In fact, for five years running, Rust has taken the top spot as the most loved programming language.

Command example: kamaji build rust app my_rust_app

Built project:

my_rust_app
โ”œโ”€โ”€ src
โ”‚   โ””โ”€โ”€ main.rs
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ Cargo.toml
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

Scala โ™จ๏ธ Docs | Source

Scala combines object-oriented and functional programming in one high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

Command example: kamaji build scala app my_scala_app

Built project:

my_scala_app
โ”œโ”€โ”€ project
โ”‚   โ”œโ”€โ”€ build.properties
โ”‚   โ””โ”€โ”€ plugins.sbt
โ”œโ”€โ”€ src
โ”‚   โ””โ”€โ”€ main
โ”‚       โ””โ”€โ”€ scala
โ”‚           โ””โ”€โ”€ MyApp.scala
โ”œโ”€โ”€ .editorconfig
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .gitlab-ci.yml
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

Credits & inspirations

Contributors

Repository

kamaji

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 1
  • over 4 years ago
  • April 3, 2021
License

MIT License

Links
Synced at

Tue, 27 Jan 2026 18:37:43 GMT

Languages