Use scripty instead of writing shell commands in package.json

pull/10/head
Chocobozzz 2016-04-30 11:17:50 +02:00
parent 1342381694
commit 9353449515
18 changed files with 128 additions and 39 deletions

View File

@ -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

View File

@ -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 &

View File

@ -9,7 +9,7 @@ webserver:
database:
host: 'localhost'
port: 27017
suffix: '-suffix'
suffix: '-dev'
# From the project root directory
storage:

View File

@ -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"
},

9
scripts/build/client/sass.sh Executable file
View File

@ -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/"

5
scripts/build/client/tsc.sh Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
cd client || exit -1
npm run tsc

5
scripts/clean/client/sass.sh Executable file
View File

@ -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 {} \;

4
scripts/clean/client/tsc.sh Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env sh
cd client || exit -1
find angular -regextype posix-egrep -regex ".*\.(js|map)$" -exec rm -f {} \;

6
scripts/clean/server/test.sh Executable file
View File

@ -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

View File

@ -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

8
scripts/danger/clean/server.sh Executable file
View File

@ -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

7
scripts/dev.sh Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env sh
npm run build
NODE_ENV=test concurrently \
"npm run livereload" \
"npm run watch:client" \
"npm start"

24
scripts/help.sh Executable file
View File

@ -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"

11
scripts/play.sh Executable file
View File

@ -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

8
scripts/test.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env sh
cd client || exit -1
npm test
cd .. || exit -1
standard
mocha server/tests

7
scripts/watch/client/sass.sh Executable file
View File

@ -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/"

5
scripts/watch/client/tsc.sh Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
cd client || exit -1
npm run tsc:w

View File

@ -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) {