diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc3855af..cb10c3d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -90,3 +90,25 @@ docker: only: - /^v[0-9]+\.[0-9]+\.[0-9]+$/ +branch: + image: registry.gitlab.com/openstapps/projectmanagement/builder:latest + stage: publish + dependencies: + - build + artifacts: + untracked: true + variables: + DOCKER_DRIVER: overlay2 + services: + - docker:dind + script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com + - docker build -t registry.gitlab.com/openstapps/api/cli:$CI_COMMIT_REF_NAME . + - docker push registry.gitlab.com/openstapps/api/cli:$CI_COMMIT_REF_NAME + except: + - /(^v[0-9]+\.[0-9]+\.[0-9]+$|^master$|^develop$)/ + only: + - branches + when: manual + tags: + - docker diff --git a/package-lock.json b/package-lock.json index 2cac1839..06a1922b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -145,63 +145,66 @@ } }, "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", + "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } }, "@hapi/formula": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz", - "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.3.tgz", + "integrity": "sha512-jKtjLLDiH95b002sJVc5c74PE6KKYftuyVdVmsuYId5stTaWcRFqE+5ukZI4gDUKjGn8wv2C3zPn3/nyjEI7gg==" }, "@hapi/joi": { - "version": "16.1.8", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.8.tgz", - "integrity": "sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", + "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", "requires": { - "@hapi/address": "^2.1.2", - "@hapi/formula": "^1.2.0", - "@hapi/hoek": "^8.2.4", - "@hapi/pinpoint": "^1.0.2", - "@hapi/topo": "^3.1.3" + "@hapi/address": "^4.0.0", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, "@hapi/pinpoint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz", - "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" }, "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "@hapi/hoek": "^8.3.0" + "@hapi/hoek": "^9.0.0" } }, "@krlwlfrt/async-pool": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@krlwlfrt/async-pool/-/async-pool-0.2.0.tgz", - "integrity": "sha512-U15m0xcdKS06p8IwDDpa4xJIbu/hSAH5RncZxoiPQQ+ZFqZcYDbI5CqWmRfYjLji/O6N924bLQXkO0rDLMZSEA==" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@krlwlfrt/async-pool/-/async-pool-0.3.0.tgz", + "integrity": "sha512-N4uQIfGTsVw1/fE3Z7DWh878dyFhVkuFYyMiQyW8QTd21yjn91rlub5SERssQXMPKDzYKNGrban3FKSQAtXisQ==" }, "@openstapps/configuration": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@openstapps/configuration/-/configuration-0.23.0.tgz", - "integrity": "sha512-5gt9X586xP+XX/Y27Nhzyl5/5T4n79OrLV4eBH60F7QzfBJUyHMQri6vYewNPUnk0nNuCVUVMZYa1JV68vBA2A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@openstapps/configuration/-/configuration-0.24.0.tgz", + "integrity": "sha512-aGY61Njy1PYDliNQP+MjIg3cNHNULyEnHJLAjYl2hMhNbcRKmECi0NkRYBIux77mxhFm0Xm+5L+pLGu20ZM9Yw==", "dev": true, "requires": { "@types/node": "10.17.14", - "@types/semver": "6.2.0", + "@types/semver": "7.1.0", "@types/yaml": "1.2.0", "chalk": "3.0.0", "commander": "4.1.1", - "semver": "6.3.0", - "tslint": "5.20.1", + "semver": "7.1.3", + "tslint": "6.0.0", "tslint-eslint-rules": "5.4.0", "yaml": "1.7.2" }, @@ -241,6 +244,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -302,11 +311,6 @@ "typedoc": "0.14.2" }, "dependencies": { - "@krlwlfrt/async-pool": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@krlwlfrt/async-pool/-/async-pool-0.3.0.tgz", - "integrity": "sha512-N4uQIfGTsVw1/fE3Z7DWh878dyFhVkuFYyMiQyW8QTd21yjn91rlub5SERssQXMPKDzYKNGrban3FKSQAtXisQ==" - }, "@types/fs-extra": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.1.0.tgz", @@ -409,9 +413,9 @@ "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" }, "@types/chai": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.9.tgz", - "integrity": "sha512-NeXgZj+MFL4izGqA4sapdYzkzQG+MtGra9vhQ58dnmDY++VgJaRUws+aLVV5zRJCYJl/8s9IjMmhiUw1WsKSmw==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.10.tgz", + "integrity": "sha512-TlWWgb21+0LdkuFqEqfmy7NEgfB/7Jjux15fWQAh3P93gbmXuwTM/vxEdzW89APIcI2BgKR48yjeAkdeH+4qvQ==", "dev": true }, "@types/chai-as-promised": { @@ -460,9 +464,9 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, "@types/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz", - "integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz", + "integrity": "sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "*", @@ -557,9 +561,9 @@ "dev": true }, "@types/morgan": { - "version": "1.7.37", - "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.7.37.tgz", - "integrity": "sha512-tIdEA10BcHcOumMmUiiYdw8lhiVVq62r0ghih5Xpp4WETkfsMiTUZL4w9jCI502BBOrKhFrAOGml9IeELvVaBA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.0.tgz", + "integrity": "sha512-warrzirh5dlTMaETytBTKR886pRXwr+SMZD87ZE13gLMR8Pzz69SiYFkvoDaii78qGP1iyBIUYz5GiXyryO//A==", "requires": { "@types/express": "*" } @@ -608,10 +612,13 @@ } }, "@types/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-1OzrNb4RuAzIT7wHSsgZRlMBlNsJl+do6UblR7JMW4oB7bbR+uBEYtUh7gEc/jM84GGilh68lSOokyM/zNUlBA==", - "dev": true + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz", + "integrity": "sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/serve-static": { "version": "1.13.3", @@ -1083,9 +1090,9 @@ } }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "version": "5.0.0-3", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0-3.tgz", + "integrity": "sha512-8lfJT6SUoBSqxsXxICEeSB6+/YeVUDshV4jfrDneRcrC3H/bZ9YossoD5KCtNJlmKFUsWFZJg1b9MmEvLD3BCA==" }, "commondir": { "version": "1.0.1", @@ -1282,6 +1289,14 @@ "semver": "^6.0.0", "split": "^1.0.0", "through2": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "conventional-commits-filter": { @@ -2238,6 +2253,14 @@ "requires": { "meow": "^5.0.0", "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "gitconfiglocal": { @@ -2659,6 +2682,14 @@ "@babel/types": "^7.4.0", "istanbul-lib-coverage": "^2.0.5", "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "istanbul-lib-report": { @@ -4313,9 +4344,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", "dev": true }, "send": { @@ -4853,9 +4884,9 @@ "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" }, "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.0.0.tgz", + "integrity": "sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4869,7 +4900,7 @@ "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.8.0", + "tslib": "^1.10.0", "tsutils": "^2.29.0" }, "dependencies": { @@ -4952,34 +4983,34 @@ } }, "typedoc": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.15.3.tgz", - "integrity": "sha512-RGX+dgnm9fyg5KHj81/ZhMiee0FfvJnjBXedhedhMWlrtM4YRv3pn8sYCWRt5TMi1Jli3/JG224pbFo3/3uaGw==", + "version": "0.16.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.11.tgz", + "integrity": "sha512-YEa5i0/n0yYmLJISJ5+po6seYfJQJ5lQYcHCPF9ffTF92DB/TAZO/QrazX5skPHNPtmlIht5FdTXCM2kC7jQFQ==", "dev": true, "requires": { "@types/minimatch": "3.0.3", "fs-extra": "^8.1.0", - "handlebars": "^4.5.3", - "highlight.js": "^9.16.2", + "handlebars": "^4.7.2", + "highlight.js": "^9.17.1", "lodash": "^4.17.15", - "marked": "^0.7.0", + "marked": "^0.8.0", "minimatch": "^3.0.0", "progress": "^2.0.3", "shelljs": "^0.8.3", - "typedoc-default-themes": "^0.6.1", + "typedoc-default-themes": "^0.7.2", "typescript": "3.7.x" }, "dependencies": { "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", + "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", "dev": true }, "typedoc-default-themes": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.3.tgz", - "integrity": "sha512-rouf0TcIA4M2nOQFfC7Zp4NEwoYiEX4vX/ZtudJWU9IHA29MPC+PPgSXYLPESkUo7FuB//GxigO3mk9Qe1xp3Q==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.7.2.tgz", + "integrity": "sha512-fiFKlFO6VTqjcno8w6WpTsbCgXmfPHVjnLfYkmByZE7moaz+E2DSpAT+oHtDHv7E0BM5kAhPrHJELP2J2Y2T9A==", "dev": true, "requires": { "backbone": "^1.4.0", @@ -5093,11 +5124,11 @@ } }, "wait-on": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-4.0.0.tgz", - "integrity": "sha512-QrW3J8LzS5ADPfD9Rx5S6KJck66xkqyiFKQs9jmUTkIhiEOmkzU7WRZc+MjsnmkrgjitS2xQ4bb13hnlQnKBUQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-4.0.1.tgz", + "integrity": "sha512-x83fmTH2X0KL7vXoGt9aV5x4SMCvO8A/NbwWpaYYh4NJ16d3KSgbHwBy9dVdHj0B30cEhOFRvDob4fnpUmZxvA==", "requires": { - "@hapi/joi": "^16.1.8", + "@hapi/joi": "^17.1.0", "lodash": "^4.17.15", "minimist": "^1.2.0", "request": "^2.88.0", diff --git a/package.json b/package.json index 2ac8b872..686df86e 100644 --- a/package.json +++ b/package.json @@ -16,20 +16,20 @@ }, "description": "Node.js library to interact with the StApps backend service", "dependencies": { - "@krlwlfrt/async-pool": "0.2.0", + "@krlwlfrt/async-pool": "0.3.0", "@openstapps/core": "0.33.0", "@openstapps/core-tools": "0.14.0", "@openstapps/logger": "0.4.0", "@types/cli-progress": "1.8.1", - "@types/express": "4.17.2", - "@types/morgan": "1.7.37", + "@types/express": "4.17.3", + "@types/morgan": "1.9.0", "@types/node": "10.17.14", "@types/request": "2.48.4", "@types/traverse": "0.6.32", "@types/uuid": "3.4.7", "@types/wait-on": "4.0.0", "cli-progress": "3.6.0", - "commander": "4.1.1", + "commander": "5.0.0-3", "express": "4.17.1", "fast-clone": "1.5.13", "jsonschema": "1.2.5", @@ -38,12 +38,12 @@ "request": "2.88.2", "traverse": "0.6.6", "uuid": "3.4.0", - "wait-on": "4.0.0" + "wait-on": "4.0.1" }, "license": "GPL-3.0-only", "devDependencies": { - "@openstapps/configuration": "0.23.0", - "@types/chai": "4.2.9", + "@openstapps/configuration": "0.24.0", + "@types/chai": "4.2.10", "@types/chai-as-promised": "7.1.2", "@types/chai-spies": "1.0.1", "@types/fs-extra": "8.1.0", @@ -61,8 +61,8 @@ "prepend-file-cli": "1.0.6", "rimraf": "3.0.2", "ts-node": "8.6.2", - "tslint": "5.20.1", - "typedoc": "0.15.3", + "tslint": "6.0.0", + "typedoc": "0.16.11", "typescript": "3.7.5" }, "author": "Karl-Philipp Wulfert ", diff --git a/src/cli.ts b/src/cli.ts index 922efdf3..828af804 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -32,11 +32,15 @@ const pkgJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json')) const client = new HttpClient(); const commander = new Command(); - -let actionDone = false; +const helpAndExit = (help: string) => { + // tslint:disable-next-line: no-console + console.log(help); + process.exit(-1); +}; commander .command('e2e ') + .version(pkgJson.version) .description('Run in end to end test mode. Indexing and afterwards retrieving all test files from @openstapp/core to the backend') .option('-s --samples [path]', 'Path to @openstapp/core test files', './node_modules/@openstapps/core/test/resources') .option('-w --waiton [resource]', 'wait-on resource parameter see "www.npmjs.com/wait-on"') @@ -47,12 +51,9 @@ commander toURL = (new URL(to)).toString(); } catch (err) { await Logger.error('expected parameter to be valid url', err); - e2eCommand.outputHelp(); - process.exit(-1); + helpAndExit(e2eCommand.helpInformation()); } - actionDone = true; - try { if (typeof e2eCommand.waiton === 'string') { Logger.info(`Waiting for availibilty of resource: ${e2eCommand.waiton}`); @@ -87,8 +88,8 @@ commander // validate type if (typeof type !== 'string') { await Logger.error('expected parameter "type" to be of type: string'); - copyCommand.outputHelp(); - process.exit(-1); + copyCommand.help(); + helpAndExit(copyCommand.helpInformation()); } let fromURL = ''; @@ -100,19 +101,15 @@ commander toURL = (new URL(to)).toString(); } catch (err) { await Logger.error('expected parameters "from" and "to" to be valid urls', err); - copyCommand.outputHelp(); - process.exit(-1); + helpAndExit(copyCommand.helpInformation()); } // validate batchSize if (isNaN(parseInt(batchSize, 10))) { await Logger.error('expected parameter "batchSize" to be of type: number'); - copyCommand.outputHelp(); - process.exit(-1); + helpAndExit(copyCommand.helpInformation()); } - actionDone = true; - Logger.info(`Copying ${type} objects from ${fromURL} to ${toURL}`); copy(client, { @@ -133,6 +130,3 @@ commander commander .parse(process.argv); -if (!actionDone) { - commander.outputHelp(); -}