Last active
August 11, 2017 01:17
-
-
Save imaustink/72693934627c9fcc24ffbbb6b5163929 to your computer and use it in GitHub Desktop.
Create a contribution file if missing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var fs = require('fs'); | |
var path = require('path'); | |
module.exports = { | |
getOptions: function () { | |
return []; | |
}, | |
run: function (directory, opts) { | |
try{ | |
var name = require(path.join(directory, 'package.json')).name; | |
}catch(err){ | |
console.error('No package.json, skipping!'); | |
return Promise.resolve(); | |
} | |
return Promise.all([ | |
getMDFileByName(directory, 'contribute'), | |
getMDFileByName(directory, 'contributing') | |
]).then(([contribute, contributing]) => { | |
return new Promise((resolve, reject) => { | |
var file = contribute || contributing; | |
if(!file){ | |
fs.writeFileSync(path.join(directory, 'CONTRIBUTING.md'), getContributingFile(name)); | |
return resolve(); | |
} | |
resolve(); | |
}); | |
}); | |
} | |
}; | |
function getMDFileByName(directory, name){ | |
return new Promise((resolve, reject) => { | |
fs.readdir(directory, (err, files) => { | |
if(err) return reject(err); | |
var fileName = files.find(item => { | |
item = item.toLowerCase(); | |
return item.startsWith(name) && (item.endsWith('md') || item.endsWith('markdown')); | |
}); | |
resolve(fileName ? path.join(directory, fileName) : null); | |
}); | |
}); | |
} | |
function getContributingFile(name){ | |
return `# Contributing to ${name} | |
Check out the [contribution guide on CanJS.com](https://canjs.com/doc/guides/contribute.html) for information on: | |
- [Code of Conduct](https://canjs.com/doc/guides/contribute.html#CodeofConduct) | |
- [Getting Help](https://canjs.com/doc/guides/contribute.html#GettingHelp) | |
- [Project Organization](https://canjs.com/doc/guides/contributing/project-organization.html) | |
- [Reporting Bugs](https://canjs.com/doc/guides/contributing/bug-report.html) | |
- [Suggesting Features](https://canjs.com/doc/guides/contributing/feature-suggestion.html) | |
- [Finding Ways to Contribute](https://canjs.com/doc/guides/contributing/finding-ways-to-contribute.html) | |
The rest of this guide has information that’s specific to this repository. | |
## Developing Locally | |
This section will walk you through setting up the [repository](https://github.com/canjs/${name}) on your computer. | |
### Signing up for GitHub | |
If you don’t already have a GitHub account, you’ll need to [create a new one](https://help.github.com/articles/signing-up-for-a-new-github-account/). | |
### Forking & cloning the repository | |
A “fork” is a copy of a repository in your personal GitHub account. “Cloning” is the process of getting the repository’s source code on your computer. | |
GitHub has a guide for [forking a repo](https://help.github.com/articles/fork-a-repo/). To fork ${name}, you can start by going to its [fork page](https://github.com/canjs/${name}/fork). | |
Next, you’ll want to clone the repo. [GitHub’s cloning guide](https://help.github.com/articles/cloning-a-repository/) explains how to do this on Linux, Mac, or Windows. | |
GitHub’s guide will [instruct you](https://help.github.com/articles/fork-a-repo/#step-2-create-a-local-clone-of-your-fork) to clone it with a command like: | |
\`\`\`shell | |
git clone https://github.com/YOUR-USERNAME/${name} | |
\`\`\` | |
Make sure you replace \`YOUR-USERNAME\` with your GitHub username. | |
### Installing the dependencies | |
After you’ve forked & cloned the repository, you’ll need to install the project’s dependencies. | |
First, make sure you’ve [installed Node.js and npm](https://docs.npmjs.com/getting-started/installing-node). | |
If you just cloned the repo from the command line, you’ll want to switch to the folder with your clone: | |
\`\`\`shell | |
cd ${name} | |
\`\`\` | |
Next, install the project’s dependencies with npm: | |
\`\`\`shell | |
npm install | |
\`\`\` | |
### Starting the development server | |
Run the following to start a dev server: | |
\`\`\`shell | |
npm run develop | |
\`\`\` | |
### Running the tests | |
You can manually run this repository’s tests in any browser by starting the dev server (see the section above) and visiting this page: http://localhost:8080/test/test.html | |
Firefox is used to run the repository’s automated tests from the command line. If you don’t already have it, [download Firefox](https://www.mozilla.org/en-US/firefox/new/). Mozilla has guides for installing it on [Linux](https://support.mozilla.org/t5/Install-and-Update/Install-Firefox-on-Linux/ta-p/2516), [Mac](https://support.mozilla.org/t5/Install-and-Update/How-to-download-and-install-Firefox-on-Mac/ta-p/3453), and [Windows](https://support.mozilla.org/t5/Install-and-Update/How-to-download-and-install-Firefox-on-Windows/ta-p/2210). | |
After Firefox is installed, you can run: | |
\`\`\`shell | |
npm test | |
\`\`\` | |
### Making a build | |
Run the following command to create a build: | |
\`\`\`shell | |
npm run build | |
\`\`\` | |
This will create a \`dist/\` folder that contains the AMD, CommonJS, and global module versions of the project. | |
`; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment