diff --git a/docs/development/build-instructions-linux.md b/docs/development/build-instructions-linux.md index 42b7730a84ab..e6b5004bf280 100644 --- a/docs/development/build-instructions-linux.md +++ b/docs/development/build-instructions-linux.md @@ -117,6 +117,14 @@ To clean the build files: $ npm run clean ``` +To clean only `out` and `dist` directories: + +```bash +$ npm run clean-build +``` + +**Note:** Both clean commands require running `bootstrap` again before building. + ## Troubleshooting ### Error While Loading Shared Libraries: libtinfo.so.5 diff --git a/docs/development/build-instructions-osx.md b/docs/development/build-instructions-osx.md index 7b934cd55b2a..d0e95aaf18c8 100644 --- a/docs/development/build-instructions-osx.md +++ b/docs/development/build-instructions-osx.md @@ -85,6 +85,14 @@ To clean the build files: $ npm run clean ``` +To clean only `out` and `dist` directories: + +```bash +$ npm run clean-build +``` + +**Note:** Both clean commands require running `bootstrap` again before building. + ## Tests See [Build System Overview: Tests](build-system-overview.md#tests) diff --git a/docs/development/build-instructions-windows.md b/docs/development/build-instructions-windows.md index 2146abad97b9..4f7335e108fd 100644 --- a/docs/development/build-instructions-windows.md +++ b/docs/development/build-instructions-windows.md @@ -83,6 +83,14 @@ To clean the build files: $ npm run clean ``` +To clean only `out` and `dist` directories: + +```bash +$ npm run clean-build +``` + +**Note:** Both clean commands require running `bootstrap` again before building. + ## Tests See [Build System Overview: Tests](build-system-overview.md#tests) diff --git a/package.json b/package.json index a572a1918ef3..8de882fbf5f4 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "bump-version": "./script/bump-version.py", "build": "python ./script/build.py -c D", "clean": "python ./script/clean.py", + "clean-build": "python ./script/clean.py --build", "coverage": "npm run instrument-code-coverage && npm test -- --use-instrumented-asar", "instrument-code-coverage": "electabul instrument --input-path ./lib --output-path ./out/coverage/electron.asar", "lint": "npm run lint-js && npm run lint-cpp && npm run lint-py && npm run lint-api-docs-js && npm run lint-api-docs", diff --git a/script/clean.py b/script/clean.py index 669b6b4dd5f3..c63bdbbadee2 100755 --- a/script/clean.py +++ b/script/clean.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import argparse import os import sys @@ -11,13 +12,34 @@ SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) def main(): os.chdir(SOURCE_ROOT) - rm_rf('node_modules') - rm_rf('dist') - rm_rf('out') - rm_rf('spec/node_modules') - rm_rf('vendor/brightray/vendor/download/libchromiumcontent') - rm_rf('vendor/brightray/vendor/libchromiumcontent/src') - rm_rf(os.path.expanduser('~/.node-gyp')) + + args = parse_args() + + remove_directory('dist') + remove_directory('out') + + if not args.build: + remove_directory('node_modules') + remove_directory('spec/node_modules') + + remove_directory('vendor/brightray/vendor/download/libchromiumcontent') + remove_directory('vendor/brightray/vendor/libchromiumcontent/src') + + remove_directory(os.path.expanduser('~/.node-gyp')) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Remove generated and' \ + 'downloaded build files') + parser.add_argument('-b', '--build', + help='Only remove out and dist directories', + action='store_true') + return parser.parse_args() + + +def remove_directory(directory): + print 'Removing %s' % directory + rm_rf(directory) if __name__ == '__main__':