diff --git a/package-lock.json b/package-lock.json index 4435ce90..ed242466 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "lodash": "^4.17.21", "nostr-tools": "^2.13.0", "pg": "^8.4.0", + "qrcode-terminal": "^0.12.0", "reflect-metadata": "^0.2.2", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -5730,6 +5731,14 @@ "node": ">=6" } }, + "node_modules/qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", diff --git a/package.json b/package.json index a71062ba..123cd17c 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "lodash": "^4.17.21", "nostr-tools": "^2.13.0", "pg": "^8.4.0", + "qrcode-terminal": "^0.12.0", "reflect-metadata": "^0.2.2", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/scripts/extract_nprofile.sh b/scripts/extract_nprofile.sh index 704b7b36..3ddf06cd 100644 --- a/scripts/extract_nprofile.sh +++ b/scripts/extract_nprofile.sh @@ -108,12 +108,18 @@ get_log_info() { log "A node admin has not yet enrolled via Nostr." log "Paste this string into ShockWallet as a node source to connect as administrator:" log "${SECONDARY_COLOR}$admin_connect${RESET_COLOR}" + echo "" + log "Or scan this QR code with ShockWallet:" + node "$INSTALL_DIR/scripts/qr_generator.js" "$admin_connect" 2>/dev/null || log "QR code generation unavailable" break fi elif [ -f "$DATA_DIR/app.nprofile" ]; then app_nprofile=$(cat "$DATA_DIR/app.nprofile") log "Node is already set up. Use this nprofile to invite guest users:" log "${SECONDARY_COLOR}$app_nprofile${RESET_COLOR}" + echo "" + log "Or scan this QR code with ShockWallet:" + node "$INSTALL_DIR/scripts/qr_generator.js" "$app_nprofile" 2>/dev/null || log "QR code generation unavailable" break fi sleep $WAIT_INTERVAL diff --git a/scripts/qr_generator.js b/scripts/qr_generator.js new file mode 100755 index 00000000..a4b4a865 --- /dev/null +++ b/scripts/qr_generator.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +import qrcode from 'qrcode-terminal'; + +const text = process.argv[2]; + +if (!text) { + console.error('Usage: qr_generator.js '); + process.exit(1); +} + +qrcode.generate(text, { small: true }, (qr) => { + console.log(qr); +}); +