From 9353449515ff6881a54ce6887297b7eab2855186 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sat, 30 Apr 2016 11:17:50 +0200 Subject: [PATCH] Use scripty instead of writing shell commands in package.json --- bin/clean_test.sh | 8 ------- bin/run_servers.sh | 12 ----------- config/default.yaml | 2 +- package.json | 37 ++++++++++++++++++--------------- scripts/build/client/sass.sh | 9 ++++++++ scripts/build/client/tsc.sh | 5 +++++ scripts/clean/client/sass.sh | 5 +++++ scripts/clean/client/tsc.sh | 4 ++++ scripts/clean/server/test.sh | 6 ++++++ scripts/danger/clean/modules.sh | 7 +++++++ scripts/danger/clean/server.sh | 8 +++++++ scripts/dev.sh | 7 +++++++ scripts/help.sh | 24 +++++++++++++++++++++ scripts/play.sh | 11 ++++++++++ scripts/test.sh | 8 +++++++ scripts/watch/client/sass.sh | 7 +++++++ scripts/watch/client/tsc.sh | 5 +++++ server/tests/api/utils.js | 2 +- 18 files changed, 128 insertions(+), 39 deletions(-) delete mode 100755 bin/clean_test.sh delete mode 100755 bin/run_servers.sh create mode 100755 scripts/build/client/sass.sh create mode 100755 scripts/build/client/tsc.sh create mode 100755 scripts/clean/client/sass.sh create mode 100755 scripts/clean/client/tsc.sh create mode 100755 scripts/clean/server/test.sh create mode 100755 scripts/danger/clean/modules.sh create mode 100755 scripts/danger/clean/server.sh create mode 100755 scripts/dev.sh create mode 100755 scripts/help.sh create mode 100755 scripts/play.sh create mode 100755 scripts/test.sh create mode 100755 scripts/watch/client/sass.sh create mode 100755 scripts/watch/client/tsc.sh diff --git a/bin/clean_test.sh b/bin/clean_test.sh deleted file mode 100755 index ef146e091..000000000 --- a/bin/clean_test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -basePath=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) - -for i in $(seq 1 6); do - printf "use peertube-test%s;\ndb.dropDatabase();" "$i" | mongo - rm -rf "$basePath/../test$i" -done diff --git a/bin/run_servers.sh b/bin/run_servers.sh deleted file mode 100755 index 83768178c..000000000 --- a/bin/run_servers.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -if [ ! -f server.js ]; then - echo "The script has to be executed at the root of the project." - exit -1 -fi - -NODE_ENV=test NODE_APP_INSTANCE=1 node server.js & -sleep 1 -NODE_ENV=test NODE_APP_INSTANCE=2 node server.js & -sleep 1 -NODE_ENV=test NODE_APP_INSTANCE=3 node server.js & diff --git a/config/default.yaml b/config/default.yaml index 646113da4..be161640c 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -9,7 +9,7 @@ webserver: database: host: 'localhost' port: 27017 - suffix: '-suffix' + suffix: '-dev' # From the project root directory storage: diff --git a/package.json b/package.json index a9d053f6e..32c0d31f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "peertube", - "description": "Prototype of a decentralized video streaming platform using P2P (bittorent) directly in the web browser with webtorrent.", + "description": "Prototype of a decentralized video streaming platform using P2P (bittorent) directly in the web browser with WebTorrent and Angular 2.", "version": "0.0.1", "private": true, "licence": "GPLv3", @@ -17,24 +17,26 @@ "url": "git://github.com/Chocobozzz/PeerTube.git" }, "scripts": { - "build": "concurrently \"npm run client:sass\" \"npm run client:tsc\"", - "client:clean": "concurrently \"npm run client:tsc:clean\" \"npm run client:sass:clean\"", - "client:sass:index": "npm run client:sass:index:clean && cd client && node-sass --include-path node_modules/bootstrap-sass/assets/stylesheets/ stylesheets/application.scss stylesheets/index.css", - "client:sass:index:watch": "cd client && node-sass -w --include-path node_modules/bootstrap-sass/assets/stylesheets/ stylesheets/application.scss stylesheets/index.css client/angular/**/ client/angular/**/**", - "client:sass:index:clean": "cd client && rm -f stylesheets/index.css", - "client:sass:angular": "cd client && node-sass angular/ --output angular/", - "client:sass:angular:watch": "cd client && node-sass -w angular/ --output angular/", - "client:sass:angular:clean": "cd client && rm -f angular/**/*.css", - "client:sass": "concurrently \"npm run client:sass:index\" \"npm run client:sass:angular\"", - "client:sass:watch": "concurrently \"npm run client:sass:index:watch\" \"npm run client:sass:angular:watch\"", - "client:sass:clean": "concurrently \"npm run client:sass:index:clean\" \"npm run client:sass:angular:clean\"", - "client:tsc": "cd client && npm run tsc", - "client:tsc:watch": "cd client && npm run tsc:w", - "client:tsc:clean": "cd client && find angular -regextype posix-egrep -regex \".*\\.(js|map)$\" -exec rm -f {} \\;", - "dev": "npm run build && NODE_ENV=test concurrently \"npm run livereload\" \"npm run client:tsc:watch\" \"npm run client:sass:watch\" \"npm start\"", + "build": "npm run build:client", + "build:client": "SCRIPTY_PARALLEL=true scripty", + "build:client:sass": "scripty", + "build:client:tsc": "scripty", + "clean": "SCRIPTY_PARALLEL=true scripty", + "clean:client": "SCRIPTY_PARALLEL=true scripty", + "clean:client:sass": "scripty", + "clean:client:tsc": "scripty", + "clean:server:test": "scripty", + "watch:client": "SCRIPTY_PARALLEL=true scripty", + "watch:client:sass": "scripty", + "watch:client:tsc": "scripty", + "danger:clean:server": "scripty", + "danger:clean:modules": "scripty", + "play": "scripty", + "dev": "scripty", "livereload": "livereload ./client", "start": "node server", - "test": "cd client && npm test && cd .. && standard && mocha server/tests", + "test": "scripty", + "help": "scripty", "postinstall": "cd client && npm install" }, "dependencies": { @@ -73,6 +75,7 @@ "mocha": "^2.3.3", "node-livereload": "^0.6.0", "node-sass": "^3.4.2", + "scripty": "^1.5.0", "standard": "^6.0.1", "supertest": "^1.1.0" }, diff --git a/scripts/build/client/sass.sh b/scripts/build/client/sass.sh new file mode 100755 index 000000000..0caa0df20 --- /dev/null +++ b/scripts/build/client/sass.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +npm run clean:client:sass +cd client || exit -1 + +# Compile index and angular files +concurrently \ + "node-sass --include-path node_modules/bootstrap-sass/assets/stylesheets/ stylesheets/application.scss stylesheets/index.css" \ + "node-sass angular/ --output angular/" diff --git a/scripts/build/client/tsc.sh b/scripts/build/client/tsc.sh new file mode 100755 index 000000000..ec06b643a --- /dev/null +++ b/scripts/build/client/tsc.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +cd client || exit -1 + +npm run tsc diff --git a/scripts/clean/client/sass.sh b/scripts/clean/client/sass.sh new file mode 100755 index 000000000..82c079f28 --- /dev/null +++ b/scripts/clean/client/sass.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +cd client || exit -1 +rm -f stylesheets/index.css +find angular -regextype posix-egrep -regex ".*\.(css)$" -exec rm -f {} \; diff --git a/scripts/clean/client/tsc.sh b/scripts/clean/client/tsc.sh new file mode 100755 index 000000000..775157a54 --- /dev/null +++ b/scripts/clean/client/tsc.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh + +cd client || exit -1 +find angular -regextype posix-egrep -regex ".*\.(js|map)$" -exec rm -f {} \; diff --git a/scripts/clean/server/test.sh b/scripts/clean/server/test.sh new file mode 100755 index 000000000..927671dd4 --- /dev/null +++ b/scripts/clean/server/test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +for i in $(seq 1 6); do + printf "use peertube-test%s;\ndb.dropDatabase();" "$i" | mongo + rm -rf "./test$i" +done diff --git a/scripts/danger/clean/modules.sh b/scripts/danger/clean/modules.sh new file mode 100755 index 000000000..1aa6c732b --- /dev/null +++ b/scripts/danger/clean/modules.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +read -p "This will remove all node and typescript modules. Are you sure? " -n 1 -r + +if [[ "$REPLY" =~ ^[Yy]$ ]]; then + rm -rf node_modules client/node_modules client/typings +fi diff --git a/scripts/danger/clean/server.sh b/scripts/danger/clean/server.sh new file mode 100755 index 000000000..0a85eb249 --- /dev/null +++ b/scripts/danger/clean/server.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +read -p "This will remove certs, uploads, database (dev) and logs. Are you sure? " -n 1 -r + +if [[ "$REPLY" =~ ^[Yy]$ ]]; then + rm -rf ./certs ./logs ./uploads + printf "use peertube-dev;\ndb.dropDatabase();" | mongo +fi diff --git a/scripts/dev.sh b/scripts/dev.sh new file mode 100755 index 000000000..d617cd511 --- /dev/null +++ b/scripts/dev.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +npm run build +NODE_ENV=test concurrently \ + "npm run livereload" \ + "npm run watch:client" \ + "npm start" diff --git a/scripts/help.sh b/scripts/help.sh new file mode 100755 index 000000000..3ed9f15cc --- /dev/null +++ b/scripts/help.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +printf "############# PeerTube help #############\n\n" +printf "npm run ...\n" +printf " build -> Build the application\n" +printf " build:client -> Build the client (css, js files)\n" +printf " build:client:sass -> Build the sass files\n" +printf " build:client:tsc -> Build the javascript files\n" +printf " clean -> Clean the application\n" +printf " clean:client -> Clean the client (css, js files)\n" +printf " clean:client:sass -> Clean the sass build files\n" +printf " clean:client:tsc -> Clean the javascript files\n" +printf " clean:server:test -> Clean certificates, logs, uploads and database of the test instances\n" +printf " watch:client -> Watch the client files\n" +printf " watch:client:sass -> Watch the sass client files\n" +printf " watch:client:tsc -> Watch the typescript files\n" +printf " danger:clean:server -> /!\ Clean certificates, logs, uploads and database\n" +printf " danger:clean:modules -> /!\ Clean node and typescript modules\n" +printf " play -> Run 3 fresh nodes so that you can test the communication between them\n" +printf " dev -> Watch, run the livereload and run the server so that you can develop the application\n" +printf " livereload -> Run the livereload on the client\n" +printf " start -> Run the server\n" +printf " test -> Run the tests\n" +printf " help -> Print this help\n" diff --git a/scripts/play.sh b/scripts/play.sh new file mode 100755 index 000000000..33dc1a545 --- /dev/null +++ b/scripts/play.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +if [ ! -f server.js ]; then + echo "Missing server file (server.js)." + exit -1 +fi + +for i in 1 2 3; do + NODE_ENV=test NODE_APP_INSTANCE=$i node server.js & + sleep 1 +done diff --git a/scripts/test.sh b/scripts/test.sh new file mode 100755 index 000000000..93dbd8200 --- /dev/null +++ b/scripts/test.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +cd client || exit -1 +npm test + +cd .. || exit -1 +standard +mocha server/tests diff --git a/scripts/watch/client/sass.sh b/scripts/watch/client/sass.sh new file mode 100755 index 000000000..7d716cb7c --- /dev/null +++ b/scripts/watch/client/sass.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +cd client || exit -1 + +concurrently \ + "node-sass -w --include-path node_modules/bootstrap-sass/assets/stylesheets/ stylesheets/application.scss stylesheets/index.css client/angular/**/ client/angular/**/**" \ + "node-sass -w angular/ --output angular/" diff --git a/scripts/watch/client/tsc.sh b/scripts/watch/client/tsc.sh new file mode 100755 index 000000000..f00656d2e --- /dev/null +++ b/scripts/watch/client/tsc.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +cd client || exit -1 + +npm run tsc:w diff --git a/server/tests/api/utils.js b/server/tests/api/utils.js index d37e12cb2..c1a01ef37 100644 --- a/server/tests/api/utils.js +++ b/server/tests/api/utils.js @@ -25,7 +25,7 @@ const testUtils = { // ---------------------- Export functions -------------------- function flushTests (callback) { - exec(pathUtils.join(__dirname, '../../../bin/clean_test.sh'), callback) + exec('npm run clean:server:test', callback) } function getFriendsList (url, end) { -- 2.41.0