commit f97c37fe5d98ad2df5f2e8cd6aac5a79882def65 Author: Arlo Breault arlolra@gmail.com Date: Sat Jul 6 15:48:33 2019 +0200
Rename Cakefile and make it work --- .travis.yml | 1 - proxy/Cakefile.js | 102 -------------------------------------- proxy/coffeelint.json | 135 -------------------------------------------------- proxy/make.js | 108 ++++++++++++++++++++++++++++++++++++++++ proxy/package.json | 15 +++--- 5 files changed, 114 insertions(+), 247 deletions(-)
diff --git a/.travis.yml b/.travis.yml index 3037f5a..29d6525 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,5 +39,4 @@ script: - go vet ./... - go test -v -race ./... - cd proxy - - npm run-script lint - npm test diff --git a/proxy/Cakefile.js b/proxy/Cakefile.js deleted file mode 100644 index 91ceea4..0000000 --- a/proxy/Cakefile.js +++ /dev/null @@ -1,102 +0,0 @@ - -var fs = require('fs'); -var { exec, spawn, execSync } = require('child_process'); - -// All coffeescript files required. -var FILES = [ - 'broker.coffee', - 'config.coffee', - 'proxypair.coffee', - 'snowflake.coffee', - 'ui.coffee', - 'util.coffee', - 'websocket.coffee', - 'shims.coffee' -]; - -var INITS = [ - 'init-badge.coffee', - 'init-node.coffee', - 'init-webext.coffee' -]; - -var FILES_SPEC = [ - 'spec/broker.spec.coffee', - 'spec/init.spec.coffee', - 'spec/proxypair.spec.coffee', - 'spec/snowflake.spec.coffee', - 'spec/ui.spec.coffee', - 'spec/util.spec.coffee', - 'spec/websocket.spec.coffee' -]; - -var OUTFILE = 'snowflake.js'; - -var STATIC = 'static'; - -var copyStaticFiles = function() { - return exec('cp ' + STATIC + '/* build/'); -}; - -var compileCoffee = function(outDir, init) { - var files; - files = FILES.concat('init-' + init + '.coffee'); - return exec('cat ' + files.join(' ') + ' | coffee -cs > ' + outDir + '/' + OUTFILE, function(err, stdout, stderr) { - if (err) { - throw err; - } - }); -}; - -task('test', 'snowflake unit tests', function() { - var jasmineFiles, outFile, proc; - exec('mkdir -p test'); - exec('jasmine init >&-'); - // Simply concat all the files because we're not using node exports. - jasmineFiles = FILES.concat('init-badge.coffee', FILES_SPEC); - outFile = 'test/bundle.spec.coffee'; - exec('echo "TESTING = true" > ' + outFile); - exec('cat ' + jasmineFiles.join(' ') + ' | cat >> ' + outFile); - execSync('coffee -cb ' + outFile); - proc = spawn('jasmine', ['test/bundle.spec.js'], { - stdio: 'inherit' - }); - return proc.on("exit", function(code) { - return process.exit(code); - }); -}); - -task('build', 'build the snowflake proxy', function() { - exec('mkdir -p build'); - copyStaticFiles(); - compileCoffee('build', 'badge'); - return console.log('Snowflake prepared.'); -}); - -task('webext', 'build the webextension', function() { - exec('mkdir -p webext'); - compileCoffee('webext', 'webext'); - return console.log('Webextension prepared.'); -}); - -task('node', 'build the node binary', function() { - exec('mkdir -p build'); - compileCoffee('build', 'node'); - return console.log('Node prepared.'); -}); - -task('lint', 'ensure idiomatic coffeescript', function() { - var filesAll, proc; - filesAll = FILES.concat(INITS, FILES_SPEC); - proc = spawn('coffeelint', filesAll, { - file: 'coffeelint.json', - stdio: 'inherit' - }); - return proc.on("exit", function(code) { - return process.exit(code); - }); -}); - -task('clean', 'remove all built files', function() { - return exec('rm -r build'); -}); diff --git a/proxy/coffeelint.json b/proxy/coffeelint.json deleted file mode 100644 index 239092c..0000000 --- a/proxy/coffeelint.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "arrow_spacing": { - "level": "error" - }, - "braces_spacing": { - "level": "error", - "spaces": 1, - "empty_object_spaces": 0 - }, - "camel_case_classes": { - "level": "error" - }, - "coffeescript_error": { - "level": "error" - }, - "colon_assignment_spacing": { - "level": "ignore", - "spacing": { - "left": 0, - "right": 0 - } - }, - "cyclomatic_complexity": { - "level": "ignore", - "value": 10 - }, - "duplicate_key": { - "level": "error" - }, - "empty_constructor_needs_parens": { - "level": "ignore" - }, - "ensure_comprehensions": { - "level": "warn" - }, - "eol_last": { - "level": "ignore" - }, - "indentation": { - "value": 2, - "level": "error" - }, - "line_endings": { - "level": "ignore", - "value": "unix" - }, - "max_line_length": { - "value": 80, - "level": "warn", - "limitComments": true - }, - "missing_fat_arrows": { - "level": "ignore", - "is_strict": false - }, - "newlines_after_classes": { - "value": 3, - "level": "ignore" - }, - "no_backticks": { - "level": "error" - }, - "no_debugger": { - "level": "warn", - "console": false - }, - "no_empty_functions": { - "level": "ignore" - }, - "no_empty_param_list": { - "level": "ignore" - }, - "no_implicit_braces": { - "level": "ignore", - "strict": true - }, - "no_implicit_parens": { - "level": "ignore", - "strict": true - }, - "no_interpolation_in_single_quotes": { - "level": "ignore" - }, - "no_nested_string_interpolation": { - "level": "warn" - }, - "no_plusplus": { - "level": "ignore" - }, - "no_private_function_fat_arrows": { - "level": "warn" - }, - "no_stand_alone_at": { - "level": "error" - }, - "no_tabs": { - "level": "error" - }, - "no_this": { - "level": "error" - }, - "no_throwing_strings": { - "level": "error" - }, - "no_trailing_semicolons": { - "level": "error" - }, - "no_trailing_whitespace": { - "level": "error", - "allowed_in_comments": false, - "allowed_in_empty_lines": false - }, - "no_unnecessary_double_quotes": { - "level": "ignore" - }, - "no_unnecessary_fat_arrows": { - "level": "warn" - }, - "non_empty_constructor_needs_parens": { - "level": "ignore" - }, - "prefer_english_operator": { - "level": "ignore", - "doubleNotLevel": "ignore" - }, - "space_operators": { - "level": "ignore" - }, - "spacing_after_comma": { - "level": "ignore" - }, - "transform_messes_up_line_numbers": { - "level": "warn" - } -} diff --git a/proxy/make.js b/proxy/make.js new file mode 100755 index 0000000..f5f1c0a --- /dev/null +++ b/proxy/make.js @@ -0,0 +1,108 @@ +#!/usr/bin/env node + +var fs = require('fs'); +var { exec, spawn, execSync } = require('child_process'); + +// All files required. +var FILES = [ + 'broker.js', + 'config.js', + 'proxypair.js', + 'snowflake.js', + 'ui.js', + 'util.js', + 'websocket.js', + 'shims.js' +]; + +var INITS = [ + 'init-badge.js', + 'init-node.js', + 'init-webext.js' +]; + +var FILES_SPEC = [ + 'spec/broker.spec.js', + 'spec/init.spec.js', + 'spec/proxypair.spec.js', + 'spec/snowflake.spec.js', + 'spec/ui.spec.js', + 'spec/util.spec.js', + 'spec/websocket.spec.js' +]; + +var OUTFILE = 'snowflake.js'; + +var STATIC = 'static'; + +var copyStaticFiles = function() { + exec('cp ' + STATIC + '/* build/'); +}; + +var concatJS = function(outDir, init) { + var files; + files = FILES.concat(`init-${init}.js`); + return exec(`cat ${files.join(' ')} > ${outDir}/${OUTFILE}`, function(err, stdout, stderr) { + if (err) { + throw err; + } + }); +}; + +var tasks = new Map(); + +var task = function(key, msg, func) { + tasks.set(key, { + msg, func + }); +}; + +task('test', 'snowflake unit tests', function() { + var jasmineFiles, outFile, proc; + exec('mkdir -p test'); + exec('jasmine init >&-'); + // Simply concat all the files because we're not using node exports. + jasmineFiles = FILES.concat('init-badge.js', FILES_SPEC); + outFile = 'test/bundle.spec.js'; + exec('echo "TESTING = true" > ' + outFile); + exec('cat ' + jasmineFiles.join(' ') + ' | cat >> ' + outFile); + proc = spawn('jasmine', ['test/bundle.spec.js'], { + stdio: 'inherit' + }); + proc.on("exit", function(code) { + process.exit(code); + }); +}); + +task('build', 'build the snowflake proxy', function() { + exec('mkdir -p build'); + copyStaticFiles(); + concatJS('build', 'badge'); + console.log('Snowflake prepared.'); +}); + +task('webext', 'build the webextension', function() { + exec('mkdir -p webext'); + concatJS('webext', 'webext'); + console.log('Webextension prepared.'); +}); + +task('node', 'build the node binary', function() { + exec('mkdir -p build'); + concatJS('build', 'node'); + console.log('Node prepared.'); +}); + +task('clean', 'remove all built files', function() { + exec('rm -r build test spec/support'); +}); + +var cmd = process.argv[2]; + +if (tasks.has(cmd)) { + var t = tasks.get(cmd); + console.log(t.msg); + t.func(); +} else { + console.error('Command not supported.'); +} diff --git a/proxy/package.json b/proxy/package.json index c907fed..ca13a52 100644 --- a/proxy/package.json +++ b/proxy/package.json @@ -2,17 +2,16 @@ "name": "snowflake-pt", "version": "0.0.0-git", "description": "Snowflake is a WebRTC pluggable transport for Tor.", - "main": "snowflake.coffee", + "main": "build/snowflake.js", "directories": { "test": "test" }, "scripts": { - "test": "cake test", - "lint": "cake lint", - "build": "cake build", - "webext": "cake webext", - "clean": "cake clean", - "prepublish": "cake node", + "test": "node make.js test", + "build": "node make.js build", + "webext": "node make.js webext", + "clean": "node make.js clean", + "prepublish": "node make.js node", "start": "node build/snowflake.js" }, "bin": { @@ -21,11 +20,9 @@ "author": "Serene Han", "license": "BSD-3-Clause", "devDependencies": { - "coffeelint": "^1.16.0", "jasmine": "2.5.2" }, "dependencies": { - "coffeescript": "^2.4.1", "wrtc": "^0.0.61", "ws": "^3.3.1", "xmlhttprequest": "^1.8.0"