All Projects → bitovi → landscaper

bitovi / landscaper

Licence: MIT license
Apply code mods to projects, awesomely

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to landscaper

cert human
SSL Certificates for Humans
Stars: ✭ 34 (+126.67%)
Mutual labels:  command-line-tool
ModuleInterface
Swift tool to generate Module Interfaces for Swift projects.
Stars: ✭ 70 (+366.67%)
Mutual labels:  command-line-tool
medic
Perform bulk URL status checks and track changes.
Stars: ✭ 24 (+60%)
Mutual labels:  command-line-tool
portless
Easy local domains with superpowers
Stars: ✭ 106 (+606.67%)
Mutual labels:  localhost
metronome
A set of tools for modifying and randomizing Pokémon games
Stars: ✭ 23 (+53.33%)
Mutual labels:  command-line-tool
mixpanel-engage-query
Command line tool to query the MixPanel Engage API for People Data.
Stars: ✭ 48 (+220%)
Mutual labels:  command-line-tool
docker-nginx-certbot
Automatically create and renew website certificates for free using the Let's Encrypt certificate authority.
Stars: ✭ 367 (+2346.67%)
Mutual labels:  localhost
shelltestrunner
Easy, repeatable testing of CLI programs/commands
Stars: ✭ 93 (+520%)
Mutual labels:  command-line-tool
vimwasm-try-plugin
Try Vim plugin on your browser without installing it using vim.wasm!
Stars: ✭ 21 (+40%)
Mutual labels:  command-line-tool
rfc-bibtex
A command line tool that creates bibtex entries for IETF RFCs and Internet Drafts.
Stars: ✭ 43 (+186.67%)
Mutual labels:  command-line-tool
gee
🏵 Gee is tool of stdin to each files and stdout. It is similar to the tee command, but there are more functions for convenience. In addition, it was written as go
Stars: ✭ 65 (+333.33%)
Mutual labels:  command-line-tool
ut-cli
A command line tool to handle a unix timestamp.
Stars: ✭ 13 (-13.33%)
Mutual labels:  command-line-tool
ttdl
TTDL - Terminal Todo List Manager
Stars: ✭ 91 (+506.67%)
Mutual labels:  command-line-tool
fontman
Manage and update your installed fonts.
Stars: ✭ 20 (+33.33%)
Mutual labels:  command-line-tool
ropr
A blazing fast™ multithreaded ROP Gadget finder. ropper / ropgadget alternative
Stars: ✭ 200 (+1233.33%)
Mutual labels:  command-line-tool
swift-commandlinekit
Framework supporting the development of command-line tools in Swift on macOS and Linux. The framework supports managing command-line arguments, provides lightweight functions to deal with escape sequences, and defines an API for reading strings from the terminal.
Stars: ✭ 38 (+153.33%)
Mutual labels:  command-line-tool
label-actions
🤖 GitHub Action that performs certain tasks when issues, pull requests or discussions are labeled or unlabeled
Stars: ✭ 60 (+300%)
Mutual labels:  pull-request
przm
🎨 A simple, yet feature rich color picker and manipulator
Stars: ✭ 19 (+26.67%)
Mutual labels:  command-line-tool
Ether
A Command-Line Interface for the Swift Package Manager
Stars: ✭ 86 (+473.33%)
Mutual labels:  command-line-tool
SimpleSqlExec
Lightweight command-line utility to execute queries on SQL Server in place of SQLCMD
Stars: ✭ 20 (+33.33%)
Mutual labels:  command-line-tool


Landscaper

Apply code mods to projects

npm install --global landscaper

npm

Landscaper is a command-line tool for making sweeping changes to any number of projects using code mods.

Features

  • Combine any number of code mods into a single transformation
  • Run code mods on any number of directories at once
  • Run code mods on any number of Github repositories at once
  • Use code mods published on NPM
  • Use code mods saved as Github gists
  • Apply JSCodeShift code mods without any modification
  • Automatically submit pull requests to Github repositories

Use cases

"I need to upgrade my current codebase with code mods and want to run them all together."

Landscaper can run code mods in a series back to back, no problem.

"I need to fix a typo in the README of every personal project I ever published on Github, ever."

Landscaper can take your update script and run it against a new branch forked from the master branch of each of your repositories. Once finished, it will push the new branch with changes and create a pull request.

"I want to update pre-release version dependencies in the package.json of every project in my Github organization."

Sure, we have a code mod for that already.

"It's {CURRENT-YEAR}, I want to update the copyright year in all my LICENSE files."

Sure, we have a code mod for that already.

"I want to switch from tabs|spaces to spaces|tabs in all my diary entries in my Desktop folder"

Notice how I did not take a side here.

Super Mod

The JSCodeShift code mods take a file and transform it based on its contents. Landscaper supports those mods without any configuration, but in some cases you may want more power. This power lies in a Super Mod.

A Super Mod:

  • Accepts any number of configuration options, allowing transformations to take user input and be dynamic to use cases.
  • Access the entire working directory, have access to the project, and create, delete, and rename files and folders.

Essentially, a Super Mod can do anything. Below is a simple example of a Super Mod that creates a file with the content entered by the user when configuring the code mod.

var fs = require('fs')
var path = require('path')

module.exports = {
  getOptions: function () {
    return [{
      name: 'content',
      type: 'input',
      default: 'Some text I made',
      message: 'Text to write'
    }]
  },

  run: function (directory, options) {
    var text = options.content
    var filepath = path.join(directory, 'foo.txt')
    return new Promise(function (resolve, reject) {
      fs.writeFile(filepath, text, function (error) {
        error ? reject(error) : resolve()
      })
    })
  }
}

Note: Configuration options go through inquirer.prompt().



Bitovi
Built and maintained by the open source team at Bitovi.
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].