All Projects → securenative → packman

securenative / packman

Licence: MIT License
Code scaffolding tool by SecureNative

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to packman

FOF3-Basic
A hello world type example for Akeeba F0F3 as a walkthrough for building a Joomla! component from the ground up.
Stars: ✭ 14 (-17.65%)
Mutual labels:  scaffolding
klaravel
DEPRECATED Laravel control panel for developers, comes with integrated Scaffold generator, backups, logs, and embedde user guide.
Stars: ✭ 24 (+41.18%)
Mutual labels:  scaffolding
reactcci
React create component interactive CLI
Stars: ✭ 49 (+188.24%)
Mutual labels:  scaffolding
damascus
⚔️ CRUD boilerplate generator for Liferay DXP
Stars: ✭ 51 (+200%)
Mutual labels:  scaffolding
create-new-app
Easily generate a new fully-equiped React project, optionally with Redux, React Router, Express, or MongoDB.
Stars: ✭ 26 (+52.94%)
Mutual labels:  scaffolding
baby-chrome
Get your scaffolded chrome extension project. No more copy-paste!
Stars: ✭ 13 (-23.53%)
Mutual labels:  scaffolding
janak
Your next vue.js package!
Stars: ✭ 26 (+52.94%)
Mutual labels:  scaffolding
justgo
Skeleton for jump-starting a Go-powered microservice project with Docker and Go best-practices + easy code hot-reloading (for dev environments)!
Stars: ✭ 29 (+70.59%)
Mutual labels:  scaffolding
Scaff10X
Pipeline for scaffolding and breaking a genome assembly using 10x genomics linked-reads
Stars: ✭ 21 (+23.53%)
Mutual labels:  scaffolding
altstack
Alpine.js, Laravel, and Tailwind. An alternative full-stack development solution.
Stars: ✭ 39 (+129.41%)
Mutual labels:  scaffolding
dr scaffold
scaffold django rest apis like a champion 🚀
Stars: ✭ 116 (+582.35%)
Mutual labels:  scaffolding
create-fastify-app
An utility that help you to generate or add plugin to your Fastify project
Stars: ✭ 53 (+211.76%)
Mutual labels:  scaffolding
laravel-livewire-ui
Laravel Livewire UI, Auth, & CRUD starter kit.
Stars: ✭ 92 (+441.18%)
Mutual labels:  scaffolding
generator-stencil
Scaffolding tool 🔨 for Stencil js applications
Stars: ✭ 16 (-5.88%)
Mutual labels:  scaffolding
jekyll-skeleton
Scaffolding to start with a Jekyll website
Stars: ✭ 27 (+58.82%)
Mutual labels:  scaffolding
assemble-core
The core assemble application with no presets or defaults. All configuration is left to the implementor.
Stars: ✭ 17 (+0%)
Mutual labels:  scaffolding
fast-sg
Fast-SG: An alignment-free algorithm for ultrafast scaffolding graph construction from short or long reads.
Stars: ✭ 22 (+29.41%)
Mutual labels:  scaffolding
flaskage
Flaskage is a complete and carefully designed template for use with the Flask web framework.
Stars: ✭ 36 (+111.76%)
Mutual labels:  scaffolding
vuelectro
Bare minimum, simplistic, production ready scaffolding/build tool for developing with Electron and Vue.Js
Stars: ✭ 19 (+11.76%)
Mutual labels:  scaffolding
tfstage
TFStage: TensorFlow Project Scaffolding
Stars: ✭ 64 (+276.47%)
Mutual labels:  scaffolding

Packman

Project Scaffolding for Professionals

Motivation

At SecureNative, we push new micro-services on a daily basis and the job of creating new projects, wiring it up, importing our common libs, etc.. is a tedious job and should be automated :)
packman is a simple tool that allows you to generate boilerplate without sacrificing your freedom as a developer, no new DSL to learn, no weird config files to edit, only you and your favourite language decides the limits.

We are using packman intensively at SecureNative for the past 10 months, keeping our developers focused on the real problems instead of writing the same things again and again, we've developed wide range of packman templates from simple rest application, producer-worker application or even creating an entire project from a single protobuf file.

Prerequisites

How to get it

If you have golang installed just use:
go get -u github.com/securenative/packman

You can also use one of the pre-built binaries from our releases page

after that you can use packman to get templates, try it now:

packman unpack \
    https://github.com/securenative/packman-init \
    packmanExample \
    -author matan \
    -company SecureNative

API Reference

Render

While working on your template project you'll need to constantly render your template to check if it works.
The packman render command will take a local path to the template's folder and a list of custom flags and in return will create a new folder with the rendered template.

packman render <TEMPLATE_PATH> \
    -key-1 value-1 \ 
    -key-2 value-2 \
    ... \
    -key-n value-n

For example if I have a template called myProject and it requires the following flags: host, port running:

packman render myProject \
    -host 127.0.0.1 \ 
    -port 9909

will create a new folder called myProject-rendered with the rendered template.

Unpack

Unpack is the "wet" version of render, the only difference is that unpack will ask you where to get the template from (i.e which git repository to clone).

packman unpack <REMOTE_PATH> <LOCAL_PATH> \
    -key-1 value-1 \ 
    -key-2 value-2 \
    ... \
    -key-n value-n

Pack

Pack will just commit and push your changes to the remote git repository, if you prefer (and basically you should) you can manage it manually with your favourite git client.

packman pack <LOCAL_PATH> <REMOTE_PATH>

Auth

To get access to private repositories or to use the packman pack command you'll need to authenticate with git.

packman auth <USERNAME> <PASSWORD>

Change the default script engine

While the default script engine uses GO and as much as we love GO at SecureNative, packman was built as an un-opinionated tool so we don't impose any limit on your scripting capabilities.
You can use any language to write scripts, damn, you can even use bash scripts to generate your template as long as you respect the interface with packman.
packman scripts defines 2 standards that you must comply to:

  1. The script will be executed with 2 additional command-line arguments, the path to the flags.json file and the path to save the reply.json file.
  2. The script has to write its reply (as json) to the reply path (provided as a cli argument)

You can see its pretty simple requirements to fulfil, you can check this code to better understand it.

packman script "go run" # Will run go files
packman script "python" # will run python files
packman script "node"   # will run javascript files
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].