update NPM version NPM downloads Build Status

Be scalable. Update is a new developer framework and CLI for automating updates of any kind in code projects.

TOC

(TOC generated by verb using markdown-toc)

Please read our contributing guide if you'd like to learn more about contributing to this project.

What does it do?

All updating is accomplished using plugins called updaters, which are run by command line or API, and can be installed globally, locally, or created in a local updatefile.js.

You can create your own updaters using Update's API, or install updaters using npm, to do things like:

Why update?

Who should use Update?

Getting started

The following instructions are intended to provide a basic demonstration of how Update works. Visit the links after this section for more information.

1. Install update

To use Update's CLI, update must first be installed globally with npm:

$ npm install --global update

This adds the update command to your system path, allowing it to be run from anywhere.

2. Install an "updater"

To see how updaters work, install updater-example:

$ npm install --global updater-example

3. Create "example.txt"

In the current working directory, create an empty file named example.txt.

4. Run

As a habit, when using update make sure your work is committed, then run:

$ update example

This appends the string foo to the contents of example.txt. Visit the updater-example project for additional steps and guidance.

Next steps

Init

Tell Update's CLI to automatically run certain updaters every time the update command is given:

$ update init

You can run this command whenever you want to update your preferences, like after installing new updaters.

$ update help

  Usage: update <command> [options]

  Command: updater or tasks to run

  Options:

    --config, -c      Save a configuration value to the `update` object in package.json
    --cwd             Set or display the current working directory
    --data, -d        Define data. API equivalent of `app.data()`
    --disable         Disable an option. API equivalent of "app.disable('foo')"
    --enable          Enable an option. API equivalent of "app.enable('foo')"
    --global, -g      Save a global configuration value to use as a default
    --help, -h        Display this help menu
    --init, -i        Prompts for configuration values and stores the answers
    --option, -o      Define options. API equivalent of `app.option()`
    --run             Force tasks to run regardless of command line flags used
    --silent, -S      Silence all tasks and updaters in the terminal
    --show <key>      Display the value of <key>
    --version, -V     Display the current version of update
    --verbose, -v     Display all verbose logging messages

  Examples:

    # run updater "foo"
    $ update foo

    # run task "bar" from updater "foo"
    $ update foo:bar

    # run multiple tasks from updater "foo"
    $ update foo:bar,baz,qux

    # run a sub-generator from updater "foo"
    $ update foo.abc

    # run task "xyz" from sub-generator "foo.abc"
    $ update foo.abc:xyz

    Update attempts to automatically determine if "foo" is a task or updater.
    If there is a conflict, you can force update to run updater "foo"
    by specifying its default task. Example: `$ update foo:default`

Features

Discovering updaters

Discovering plugins

Plugins from any applications built on base should work with Update (and can be used in your updater):

Authoring updaters

Visit the updater documentation guide to learn how to use, author and publish updaters.

More information

Community

Are you using Update in your project? Have you published an updater? Want to share your Update project with the world? Here are some suggestions:

Related projects

You might also be interested in these projects:

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Please read the contributing guide for avice on opening issues, pull requests, and coding standards.

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v0.9.0, on July 01, 2016.