diff --git a/package.json b/package.json index ebfd192cf..8552a9d60 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": true, "licence": "AGPL-3.0", "engines": { - "node": ">=10.x <=15", + "node": ">=10.x", "yarn": ">=1.x", "postgres": ">=10.x", "redis-server": ">=2.8.18", @@ -25,30 +25,25 @@ }, "typings": "*.d.ts", "scripts": { - "e2e": "scripty", - "e2e:local": "scripty", - "setup:cli": "scripty", - "build": "scripty", - "build:embed": "scripty", - "build:server": "scripty", - "build:client": "scripty", - "clean:client": "scripty", - "clean:server": "scripty", - "clean:server:test": "scripty", - "danger:clean:dev": "scripty", - "danger:clean:prod": "scripty", - "danger:clean:modules": "scripty", - "i18n:update": "scripty", + "e2e": "sh ./scripts/e2e/index.sh", + "e2e:local": "sh ./scripts/e2e/local.sh", + "setup:cli": "sh ./scripts/setup/cli.sh", + "build": "sh ./scripts/build/index.sh", + "build:embed": "sh ./scripts/build/embed.sh", + "build:server": "sh ./scripts/build/server.sh", + "build:client": "sh ./scripts/build/client.sh", + "clean:client": "sh ./scripts/clean/client/index.sh", + "clean:server:test": "sh ./scripts/clean/server/test.sh", + "i18n:update": "sh ./scripts/i18n/update.sh", "plugin:install": "node ./dist/scripts/plugin/install.js", "plugin:uninstall": "node ./dist/scripts/plugin/uninstall.js", "i18n:create-custom-files": "node ./dist/scripts/i18n/create-custom-files.js", "reset-password": "node ./dist/scripts/reset-password.js", - "play": "scripty", "dev": "sh ./scripts/dev/index.sh", "dev:server": "sh ./scripts/dev/server.sh", - "dev:embed": "scripty", + "dev:embed": "sh ./scripts/dev/embed.sh", "dev:client": "sh ./scripts/dev/client.sh", - "dev:cli": "scripty", + "dev:cli": "sh ./scripts/dev/cli.sh", "start": "node dist/server", "start:server": "node dist/server --no-client", "update-host": "node ./dist/scripts/update-host.js", @@ -56,9 +51,9 @@ "regenerate-thumbnails": "node ./dist/scripts/regenerate-thumbnails.js", "create-import-video-file-job": "node ./dist/scripts/create-import-video-file-job.js", "print-transcode-command": "node ./dist/scripts/print-transcode-command.js", - "test": "scripty", - "help": "scripty", - "generate-cli-doc": "scripty", + "test": "sh ./scripts/test.sh", + "help": "sh ./scripts/help.sh", + "generate-cli-doc": "sh ./scripts/generate-cli-doc.sh", "parse-log": "node ./dist/scripts/parse-log.js", "prune-storage": "node ./dist/scripts/prune-storage.js", "optimize-old-videos": "node ./dist/scripts/optimize-old-videos.js", @@ -72,12 +67,12 @@ "eslint": "eslint", "concurrently": "concurrently", "mocha": "mocha", - "ci": "scripty", - "release": "scripty", - "release-embed-api": "scripty", - "nightly": "scripty", - "openapi-clients": "scripty", - "client-report": "scripty", + "ci": "sh ./scripts/ci.sh", + "release": "sh ./scripts/release.sh", + "release-embed-api": "sh ./scripts/release-embed-api.sh", + "nightly": "sh ./scripts/nightly.sh", + "openapi-clients": "sh ./scripts/openapi-clients.sh", + "client-report": "sh ./scripts/client-report.sh", "swagger-cli": "swagger-cli" }, "dependencies": { @@ -136,7 +131,6 @@ "redis": "^3.0.2", "reflect-metadata": "^0.1.12", "sanitize-html": "2.x", - "scripty": "^2.0.0", "sequelize": "6.6.2", "sequelize-typescript": "^2.0.0-beta.1", "sitemap": "^6.1.0", @@ -216,9 +210,6 @@ "ts-node": "9.1.1", "typescript": "^4.0.5" }, - "scripty": { - "silent": true - }, "bundlewatch": { "files": [ { diff --git a/scripts/clean/client/dist.sh b/scripts/clean/client/index.sh similarity index 100% rename from scripts/clean/client/dist.sh rename to scripts/clean/client/index.sh diff --git a/scripts/clean/server/dist.sh b/scripts/clean/server/dist.sh deleted file mode 100755 index 50722cb44..000000000 --- a/scripts/clean/server/dist.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -eu - -rm -rf dist/ diff --git a/scripts/danger/clean/cleaner.ts b/scripts/danger/clean/cleaner.ts deleted file mode 100644 index 69e8a63a0..000000000 --- a/scripts/danger/clean/cleaner.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { registerTSPaths } from '../../../server/helpers/register-ts-paths' -registerTSPaths() - -import * as Promise from 'bluebird' -import * as rimraf from 'rimraf' -import { initDatabaseModels, sequelizeTypescript } from '../../../server/initializers/database' -import { CONFIG } from '../../../server/initializers/config' - -initDatabaseModels(true) - .then(() => { - return sequelizeTypescript.drop() - }) - .then(() => { - console.info('Tables of %s deleted.', CONFIG.DATABASE.DBNAME) - - const STORAGE = CONFIG.STORAGE - return Promise.mapSeries(Object.keys(STORAGE), storage => { - const storageDir = STORAGE[storage] - - return new Promise((res, rej) => { - rimraf(storageDir, err => { - if (err) return rej(err) - - console.info('%s deleted.', storageDir) - return res() - }) - }) - }) - .then(() => process.exit(0)) - }) - .catch(err => { - console.error(err) - process.exit(-1) - }) diff --git a/scripts/danger/clean/dev.sh b/scripts/danger/clean/dev.sh deleted file mode 100755 index 14b45e13b..000000000 --- a/scripts/danger/clean/dev.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -eu - -read -p "This will remove all directories and SQL tables. Are you sure? (y/*) " -n 1 -r -echo - -if [[ "$REPLY" =~ ^[Yy]$ ]]; then - NODE_ENV=test npm run ts-node -- --type-check "scripts/danger/clean/cleaner" -fi diff --git a/scripts/danger/clean/modules.sh b/scripts/danger/clean/modules.sh deleted file mode 100755 index f59d6b675..000000000 --- a/scripts/danger/clean/modules.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -eu - -read -p "This will remove all node server and client modules. Are you sure? " -n 1 -r - -if [[ "$REPLY" =~ ^[Yy]$ ]]; then - rm -rf node_modules client/node_modules -fi diff --git a/scripts/danger/clean/prod.sh b/scripts/danger/clean/prod.sh deleted file mode 100755 index 0675600c4..000000000 --- a/scripts/danger/clean/prod.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -eu - -read -p "This will remove all directories and SQL tables. Are you sure? (y/*) " -n 1 -r -echo - -if [[ "$REPLY" =~ ^[Yy]$ ]]; then - NODE_ENV=production npm run ts-node -- --type-check "./scripts/danger/clean/cleaner" -fi diff --git a/scripts/help.sh b/scripts/help.sh index bc38bdb40..da127092d 100755 --- a/scripts/help.sh +++ b/scripts/help.sh @@ -9,11 +9,6 @@ printf " build:server -> Build the server for production\n" printf " build:client -> Build the client for production\n" printf " clean:client -> Clean the client build files (dist directory)\n" printf " clean:server:test -> Clean logs, uploads, database... of the test instances\n" -printf " watch:client -> Watch and compile on the fly the client files\n" -printf " danger:clean:dev -> /!\ Clean certificates, logs, uploads, thumbnails, torrents and database specified in the development environment\n" -printf " danger:clean:prod -> /!\ Clean certificates, logs, uploads, thumbnails, torrents and database specified by the production environment\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 " reset-password -- -u [user] -> Reset the password of user [user]\n" printf " create-transcoding-job -- -v [video UUID] \n" printf " -> Create a transcoding job for a particular video\n" diff --git a/scripts/play.sh b/scripts/play.sh deleted file mode 100755 index 69725da93..000000000 --- a/scripts/play.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -set -eu - -if [ ! -f "dist/server.js" ]; then - echo "Missing server file (server.js)." - exit -1 -fi - -max=${1:-3} - -for i in $(seq 1 "$max"); do - NODE_ENV=test NODE_APP_INSTANCE=$i node dist/server.js & - sleep 1 -done diff --git a/yarn.lock b/yarn.lock index 99a316f71..3ce730fbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1349,13 +1349,6 @@ async@>=0.2.9, async@^3.0.1, async@^3.1.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== -async@^2.6.1: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" @@ -3837,7 +3830,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@7.1.6, glob@^7.0.3, glob@^7.1.3: +glob@7.1.6, glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -5014,7 +5007,7 @@ lodash@4.17.19: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== -lodash@4.17.21, lodash@>=4.17.13, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@>=4.17.13, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6902,23 +6895,11 @@ resolve-alpn@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.1.1.tgz#4a006a7d533c81a5dd04681612090fde227cd6e1" integrity sha512-0KbFjFPR2bnJhNx1t8Ad6RqVc8+QPJC4y561FYyC/Q/6OzB3fhUzB5PEgitYhPK6aifwR5gXBSnDMllaDWixGQ== -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-pkg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-1.0.0.tgz#e19a15e78aca2e124461dc92b2e3943ef93494d9" - integrity sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk= - dependencies: - resolve-from "^2.0.0" - resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -7054,16 +7035,6 @@ sax@>=0.6.0, sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scripty@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/scripty/-/scripty-2.0.0.tgz#25761bb2e237a7563f705d87357db07791d38459" - integrity sha512-vbd4FPeuNwYNGtRtYa1wDZLPCx5PpW6VrldCEiBGqPz7Je1xZOgNvVPD2axymvqNghBIRiXxAU+JwYrOzvuLJg== - dependencies: - async "^2.6.1" - glob "^7.0.3" - lodash "^4.17.11" - resolve-pkg "^1.0.0" - semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"