From e164a6fb4b70d3ac07242a271210942c3baf0eb2 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <adhisimon@gmail.com> Date: Tue, 15 Mar 2022 16:31:23 +0700 Subject: [PATCH] Add sd-notify wrapper --- package-lock.json | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +++ sd-notify.js | 14 +++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 sd-notify.js diff --git a/package-lock.json b/package-lock.json index 4023a9c..bfda50a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "pkginfo": "^0.4.1", "redis": "^3.1.2", "request": "^2.88.2", + "sd-notify": "*", "sha1": "^1.1.1", "simple-git": "^1.80.1", "stack-trace": "0.0.10", @@ -43,6 +44,9 @@ "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.4" + }, + "optionalDependencies": { + "sd-notify": "^2.8.0" } }, "node_modules/@cloudcmd/copy-file": { @@ -482,6 +486,15 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/body-parser": { "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", @@ -1497,6 +1510,12 @@ "moment": "^2.11.2" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -2967,6 +2986,24 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sd-notify": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sd-notify/-/sd-notify-2.8.0.tgz", + "integrity": "sha512-e+D1v0Y6UzmqXcPlaTkHk1QMdqk36mF/jIYv5gwry/N2Tb8/UNnpfG6ktGLpeBOR6TCC5hPKgqA+0hTl9sm2tA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "linux", + "darwin", + "win32" + ], + "dependencies": { + "bindings": "1.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -4044,6 +4081,15 @@ "tweetnacl": "^0.14.3" } }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "body-parser": { "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", @@ -4859,6 +4905,12 @@ "moment": "^2.11.2" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -5932,6 +5984,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sd-notify": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sd-notify/-/sd-notify-2.8.0.tgz", + "integrity": "sha512-e+D1v0Y6UzmqXcPlaTkHk1QMdqk36mF/jIYv5gwry/N2Tb8/UNnpfG6ktGLpeBOR6TCC5hPKgqA+0hTl9sm2tA==", + "optional": true, + "requires": { + "bindings": "1.5.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", diff --git a/package.json b/package.json index bdcd3a4..eac7ebe 100644 --- a/package.json +++ b/package.json @@ -54,5 +54,8 @@ "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.4" + }, + "optionalDependencies": { + "sd-notify": "^2.8.0" } } diff --git a/sd-notify.js b/sd-notify.js new file mode 100644 index 0000000..3e032e8 --- /dev/null +++ b/sd-notify.js @@ -0,0 +1,14 @@ +/* eslint-disable global-require */ +/* eslint-disable import/no-extraneous-dependencies */ + +const MODULE_NAME = 'KOMODO-SDK.SD-NOTIFY'; + +const logger = require('tektrans-logger'); + +try { + const notify = require('sd-notify'); + notify.ready(); + logger.info(`${MODULE_NAME} 701F8400: Systemd ready notification has been sent`); +} catch (e) { + logger.warn(`${MODULE_NAME} A6C99938: Optional dependency not found: sd-notify`); +} -- 1.9.0