This project contains a set of Yeoman scaffolds to set up common project needs. To run them, you'll either need Node.js 6.x or Docker
Once you have Node installed, you'll also need to install yeoman and this package from the public NPM repository:
npm install -g yo # install yeoman
npm install -g generator-18f # installs this package
Then, run the generators:
cd /somewhere/else
yo 18f # all generators
# or individually:
yo 18f:license
yo 18f:readme
yo 18f:gitignores
yo 18f:npm
yo 18f:cf-manifest
yo 18f:newrelic
Once you have Docker installed, you'll want to run it with the current directory mounted:
cd /somewhere/else
docker run --rm -it -v $PWD:/workdir 18fgsa/generator
That will run all of the generators. To run them individually, use e.g.
docker run --rm -it -v $PWD:/workdir --entrypoint yo 18fgsa/generator 18f:license
Pulls file content from https://github.com/18F/open-source-policy
$ yo 18f:license
$ tree
.
├── CONTRIBUTING.md
└── LICENSE.md
Pulls README content from https://github.com/18F/open-source-policy/blob/master/README_TEMPLATE.md
$ yo 18f:readme
? What is the project's full name? My Project
$ tree
.
└── README.md
Pulls Gitignore content from https://github.com/github/gitignore
$ yo 18f:readme
? What languages will this project use?
◯ Go
◉ Node
◯ Python
❯◉ Ruby
$ tree
.
└── .gitignore
Creates a package.json file. Based on https://github.com/caseywebb/generator-npm-init
$ yo 18f:npm
? Will this project have front end libraries/dependencies Yes
Configuring npm now...
? name: generator-18f
? version: 0.2.0
? description: Scaffolding for 18F projects
? main point: index.js
? test command: echo "Error: no test specified" && exit 1
? git repository: https://github.com/18F/18f-cli
? keywords (space-delimited):
? author: 18f
? license: CC0-1.0
$ tree
.
└── package.json
Creates files for a cloud.gov deploy, depending on your primary application language. Requires modification after generation.
$ yo 18f:cf-manifest
? What's the repo name? (A short name that acts as the project identifier) my-repo
? What is the primary language (for Travis, Cloud.gov, etc.)? (Use arrow keys)
❯ Go
Node
Python
Ruby
? What is your application run command (e.g. "node app.js" or "gunicorn my_module.wsgi")? @TODO
? Will this project need any of these services?
❯◯ database
◯ secret credentials
$ tree
.
├── Procfile
├── TODO.txt
├── manifest_base.yml
├── manifest_dev.yml
└── manifest_prod.yml
Generates a New Relic config files with 18F-recommended defaults.
$ yo 18f:newrelic
? What's the repo name? (A short name that acts as the project identifier) @TODO
? What is the primary language (for Travis, Cloud.gov, etc.)? (Use arrow keys)
❯ Go
Node
Python
Ruby
? What languages will this project use?
◯ Go
◉ Node
◯ Python
❯◉ Ruby
$ tree
.
├── newrelic.ini
├── newrelic.js
└── newrelic.yml
You'll most likely want to npm link the in-progress project to add it to
make it visible to yo:
cd /path/to/18f-cli # navigate to project root
npm install -g yo # install yeoman
npm install # install the required libs
npm link # install the 18f-cli generators globally
This repository also contains an earlier effort to standardize common 18F functions in the form of a set of command line utilities.
curl -sO https://raw.githubusercontent.com/18f/18f-cli/release/install
bash ./install
If you'd like to keep a copy of the git repository around:
git clone https://github.com/18f/18f-cli/
cd 18f-cli
bash ./install
18f [options] <subcommand> [subcommand options] <args>
18f initTurns the current directory into a git repo with proper LICENSE.md, CONTRIBUTING.md, README.md, and .about.yml files.
18f setupRuns the setup script found in https://github.com/18f/laptop. Used to set up a new computer or update an existing one. See that repo for more information about customizing the script through ~/.laptop.local.
18f validateChecks a repo to see whether it has the standard 18F files, as created by 18f init.
18f deployDeploys a project to Cloud Foundry (and, more specifically, cloud.gov).
18f scanAllows a variety of pre-configured scans to be run on a project. Currently supports:
18f brandDownloads the 18F brand assets, either in whole or in part. Useful as a periodic check to keep assets up-to-date.
18f upgradeUpgrade the 18f command to the latest version
This repo also includes some scripts for standalone use, either in continuous integration services or on cloud.gov.
cf-db.sh: get a psql binary for use on cloud.gov and connect to the database.deploy.sh: a deployment script for deploying from a continuous integration serviceThis script is really a bundle of scripts: one main script and a bunch of subcommands. The main script—called main—looks for scripts named 18f-whatever in /usr/local/bin/ and makes them available as 18f whatever.
New scripts should be added to this repository's bin folder without the 18f- prefix, as that will be added during installation. They can be written in any language, but care should be taken to choose a language that most users will have. Similarly, there is a preference for avoiding additional dependencies in new scripts.
See CONTRIBUTING for additional information.
This project is in the worldwide public domain. As stated in CONTRIBUTING:
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.
Content type
Image
Digest
Size
40.6 MB
Last updated
over 8 years ago
docker pull 18fgsa/generator