From 899429e4c2dbd3a7f213979a243ad5dd806b36b3 Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Fri, 27 Mar 2026 14:09:12 +0530 Subject: [PATCH 1/6] fix: backup --- package-lock.json | 22 +++++++++++++--------- src/plugins/terminal/www/Terminal.js | 9 ++------- src/settings/terminalSettings.js | 6 +++--- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index eea355c40..3cbcc47b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,21 +9,25 @@ "version": "1.11.8", "license": "MIT", "dependencies": { - "@codemirror/autocomplete": "^6.20.0", - "@codemirror/commands": "^6.10.0", + "@codemirror/lang-angular": "^0.1.4", "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-html": "^6.4.11", "@codemirror/lang-java": "^6.0.2", - "@codemirror/lang-javascript": "^6.2.4", + "@codemirror/lang-javascript": "^6.2.5", + "@codemirror/lang-jinja": "^6.0.0", "@codemirror/lang-json": "^6.0.2", + "@codemirror/lang-less": "^6.0.2", + "@codemirror/lang-liquid": "^6.3.2", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-php": "^6.0.2", "@codemirror/lang-python": "^6.2.1", "@codemirror/lang-rust": "^6.0.2", "@codemirror/lang-sass": "^6.0.2", + "@codemirror/lang-sql": "^6.10.0", "@codemirror/lang-vue": "^0.1.3", + "@codemirror/lang-wast": "^6.0.2", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lang-yaml": "^6.1.2", "@codemirror/language": "^6.11.3", @@ -2093,9 +2097,9 @@ } }, "node_modules/@codemirror/lang-javascript": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.4.tgz", - "integrity": "sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", + "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.0.0", @@ -2144,9 +2148,9 @@ } }, "node_modules/@codemirror/lang-liquid": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.1.tgz", - "integrity": "sha512-S/jE/D7iij2Pu70AC65ME6AYWxOOcX20cSJvaPgY5w7m2sfxsArAcUAuUgm/CZCVmqoi9KiOlS7gj/gyLipABw==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.3.2.tgz", + "integrity": "sha512-6PDVU3ZnfeYyz1at1E/ttorErZvZFXXt1OPhtfe1EZJ2V2iDFa0CwPqPgG5F7NXN0yONGoBogKmFAafKTqlwIw==", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.0.0", diff --git a/src/plugins/terminal/www/Terminal.js b/src/plugins/terminal/www/Terminal.js index d63c29c16..9266a1f7c 100644 --- a/src/plugins/terminal/www/Terminal.js +++ b/src/plugins/terminal/www/Terminal.js @@ -327,21 +327,16 @@ const Terminal = { reject("Alpine is not installed."); return; } - const cmd = ` set -e - INCLUDE_FILES="alpine .downloaded .extracted axs" if [ "$FDROID" = "true" ]; then INCLUDE_FILES="$INCLUDE_FILES libtalloc.so.2 libproot-xed.so" fi - - EXCLUDE="--exclude=alpine/data --exclude=alpine/system --exclude=alpine/vendor --exclude=alpine/sdcard --exclude=alpine/storage --exclude=alpine/public" - + EXCLUDE="--exclude=alpine/data --exclude=alpine/system --exclude=alpine/vendor --exclude=alpine/sdcard --exclude=alpine/storage --exclude=alpine/public --exclude=alpine/apex --exclude=alpine/odm --exclude=alpine/product --exclude=alpine/system_ext --exclude=alpine/linkerconfig --exclude=alpine/proc --exclude=alpine/sys --exclude=alpine/dev --exclude=alpine/run --exclude=alpine/tmp" tar -cf "$PREFIX/aterm_backup.tar" -C "$PREFIX" $EXCLUDE $INCLUDE_FILES echo "ok" `; - const result = await Executor.execute(cmd); if (result === "ok") { resolve(cordova.file.dataDirectory + "aterm_backup.tar"); @@ -387,7 +382,7 @@ const Terminal = { rm -rf -- "$item" done - tar -xf "$PREFIX/aterm_backup.bin" -C "$PREFIX" + tar -xf "$PREFIX/aterm_backup.tar" -C "$PREFIX" echo "ok" `; diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index ca435600e..8c5ca55c8 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -332,7 +332,7 @@ export default function terminalSettings() { await system.copyToUri( data.uri, cordova.file.dataDirectory, - "aterm_backup", + "aterm_backup.tar", console.log, console.error, ); @@ -341,7 +341,7 @@ export default function terminalSettings() { await Terminal.restore(); // Clean up - const backupFilename = "aterm_backup.bin"; + const backupFilename = "aterm_backup.tar"; const tempBackupPath = cordova.file.dataDirectory + backupFilename; const tempFS = fsOperation(tempBackupPath); await tempFS.delete(); @@ -352,7 +352,7 @@ export default function terminalSettings() { ); }, toast, - "application/x-tar", + "application/octet-stream", ); } catch (error) { loader.removeTitleLoader(); From 5d4dde87ce1c1da21d8344212dc10962f317e65a Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Fri, 27 Mar 2026 14:43:46 +0530 Subject: [PATCH 2/6] fix: backup --- src/plugins/terminal/www/Terminal.js | 2 +- src/settings/terminalSettings.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/terminal/www/Terminal.js b/src/plugins/terminal/www/Terminal.js index 9266a1f7c..0b15b3e17 100644 --- a/src/plugins/terminal/www/Terminal.js +++ b/src/plugins/terminal/www/Terminal.js @@ -382,7 +382,7 @@ const Terminal = { rm -rf -- "$item" done - tar -xf "$PREFIX/aterm_backup.tar" -C "$PREFIX" + tar -xf "$PREFIX/aterm_backup.*" -C "$PREFIX" echo "ok" `; diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index 8c5ca55c8..fa3c43610 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -325,6 +325,9 @@ export default function terminalSettings() { */ async function terminalRestore() { try { + await Executor.execute("rm -rf $PREFIX/aterm_backup.tar"); + await Executor.execute("rm -rf $PREFIX/aterm_backup.bin"); + sdcard.openDocumentFile( async (data) => { loader.showTitleLoader(); @@ -352,7 +355,7 @@ export default function terminalSettings() { ); }, toast, - "application/octet-stream", + "application/x-tar", ); } catch (error) { loader.removeTitleLoader(); From 62580480d1cce8c5162dd3e577f1216fbe7e4976 Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Fri, 27 Mar 2026 15:16:54 +0530 Subject: [PATCH 3/6] fix: backup --- src/settings/terminalSettings.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index fa3c43610..03a0729f5 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -325,8 +325,7 @@ export default function terminalSettings() { */ async function terminalRestore() { try { - await Executor.execute("rm -rf $PREFIX/aterm_backup.tar"); - await Executor.execute("rm -rf $PREFIX/aterm_backup.bin"); + await Executor.execute("rm -rf $PREFIX/aterm_backup.*"); sdcard.openDocumentFile( async (data) => { @@ -343,11 +342,9 @@ export default function terminalSettings() { // Restore await Terminal.restore(); - // Clean up - const backupFilename = "aterm_backup.tar"; - const tempBackupPath = cordova.file.dataDirectory + backupFilename; - const tempFS = fsOperation(tempBackupPath); - await tempFS.delete(); + //Cleanup restore file + await Executor.execute("rm -rf $PREFIX/aterm_backup.*"); + loader.removeTitleLoader(); alert( strings.success.toUpperCase(), From bfef562adfd5060ddc3fe50208854f8848a320a8 Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Sat, 28 Mar 2026 16:56:59 +0530 Subject: [PATCH 4/6] fix: restore --- src/plugins/terminal/www/Terminal.js | 72 +++++++++++++++------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/src/plugins/terminal/www/Terminal.js b/src/plugins/terminal/www/Terminal.js index 0b15b3e17..9e61b2756 100644 --- a/src/plugins/terminal/www/Terminal.js +++ b/src/plugins/terminal/www/Terminal.js @@ -260,39 +260,47 @@ const Terminal = { * Checks if alpine is already installed. * @returns {Promise} - Returns true if all required files and directories exist. */ - isInstalled() { - return new Promise(async (resolve, reject) => { - const filesDir = await new Promise((resolve, reject) => { - system.getFilesDir(resolve, reject); - }); + isInstalled() { + return new Promise(async (resolve, reject) => { + const filesDir = await new Promise((resolve, reject) => { + system.getFilesDir(resolve, reject); + }); - const alpineExists = await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/alpine`, false, (result) => { - resolve(result == 1); - }, reject); - }); + console.log("[isInstalled] filesDir:", filesDir); - const downloaded = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.downloaded`, false, (result) => { - resolve(result == 1); - }, reject); - }); + const alpineExists = await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/alpine`, false, (result) => { + resolve(result == 1); + }, reject); + }); + console.log("[isInstalled] alpineExists:", alpineExists); - const extracted = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.extracted`, false, (result) => { - resolve(result == 1); - }, reject); - }); + const downloaded = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.downloaded`, false, (result) => { + resolve(result == 1); + }, reject); + }); + console.log("[isInstalled] downloaded:", downloaded); - const configured = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.configured`, false, (result) => { - resolve(result == 1); - }, reject); - }); + const extracted = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.extracted`, false, (result) => { + resolve(result == 1); + }, reject); + }); + console.log("[isInstalled] extracted:", extracted); - resolve(alpineExists && downloaded && extracted && configured); + const configured = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.configured`, false, (result) => { + resolve(result == 1); + }, reject); }); - }, + console.log("[isInstalled] configured:", configured); + + const result = alpineExists && downloaded && extracted && configured; + console.log("[isInstalled] final result:", result); + resolve(result); + }); +}, /** * Checks if the current device architecture is supported. @@ -329,7 +337,7 @@ const Terminal = { } const cmd = ` set -e - INCLUDE_FILES="alpine .downloaded .extracted axs" + INCLUDE_FILES="alpine .downloaded .extracted .configured axs" if [ "$FDROID" = "true" ]; then INCLUDE_FILES="$INCLUDE_FILES libtalloc.so.2 libproot-xed.so" fi @@ -370,9 +378,9 @@ const Terminal = { } const cmd = ` - sleep 2 + set -e - INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/axs" + INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/.configured $PREFIX/axs" if [ "$FDROID" = "true" ]; then INCLUDE_FILES="$INCLUDE_FILES $PREFIX/libtalloc.so.2 $PREFIX/libproot-xed.so" @@ -382,7 +390,7 @@ const Terminal = { rm -rf -- "$item" done - tar -xf "$PREFIX/aterm_backup.*" -C "$PREFIX" + tar -xf $PREFIX/aterm_backup.* -C "$PREFIX" echo "ok" `; @@ -420,7 +428,7 @@ const Terminal = { const cmd = ` set -e - INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/axs" + INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/.configured $PREFIX/axs" if [ "$FDROID" = "true" ]; then INCLUDE_FILES="$INCLUDE_FILES $PREFIX/libtalloc.so.2 $PREFIX/libproot-xed.so" From d1f1cd5328a32c47d8929cffc309960aeaab927c Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Sat, 28 Mar 2026 16:57:31 +0530 Subject: [PATCH 5/6] fix: comment --- src/settings/terminalSettings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index 03a0729f5..15cbcbe0f 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -330,7 +330,7 @@ export default function terminalSettings() { sdcard.openDocumentFile( async (data) => { loader.showTitleLoader(); - //this will create a file at $PREFIX/atem_backup.bin + //this will create a file at $PREFIX/atem_backup.tar.tar await system.copyToUri( data.uri, cordova.file.dataDirectory, From de1274b54369ac34ff08a7fde1c59df7724765b7 Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Sat, 28 Mar 2026 16:59:35 +0530 Subject: [PATCH 6/6] removed logging --- src/plugins/terminal/www/Terminal.js | 62 ++++++++++++---------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/src/plugins/terminal/www/Terminal.js b/src/plugins/terminal/www/Terminal.js index 9e61b2756..61512062c 100644 --- a/src/plugins/terminal/www/Terminal.js +++ b/src/plugins/terminal/www/Terminal.js @@ -260,47 +260,39 @@ const Terminal = { * Checks if alpine is already installed. * @returns {Promise} - Returns true if all required files and directories exist. */ - isInstalled() { - return new Promise(async (resolve, reject) => { - const filesDir = await new Promise((resolve, reject) => { - system.getFilesDir(resolve, reject); - }); + isInstalled() { + return new Promise(async (resolve, reject) => { + const filesDir = await new Promise((resolve, reject) => { + system.getFilesDir(resolve, reject); + }); - console.log("[isInstalled] filesDir:", filesDir); + const alpineExists = await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/alpine`, false, (result) => { + resolve(result == 1); + }, reject); + }); - const alpineExists = await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/alpine`, false, (result) => { - resolve(result == 1); - }, reject); - }); - console.log("[isInstalled] alpineExists:", alpineExists); + const downloaded = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.downloaded`, false, (result) => { + resolve(result == 1); + }, reject); + }); - const downloaded = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.downloaded`, false, (result) => { - resolve(result == 1); - }, reject); - }); - console.log("[isInstalled] downloaded:", downloaded); + const extracted = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.extracted`, false, (result) => { + resolve(result == 1); + }, reject); + }); - const extracted = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.extracted`, false, (result) => { - resolve(result == 1); - }, reject); - }); - console.log("[isInstalled] extracted:", extracted); + const configured = alpineExists && await new Promise((resolve, reject) => { + system.fileExists(`${filesDir}/.configured`, false, (result) => { + resolve(result == 1); + }, reject); + }); - const configured = alpineExists && await new Promise((resolve, reject) => { - system.fileExists(`${filesDir}/.configured`, false, (result) => { - resolve(result == 1); - }, reject); + resolve(alpineExists && downloaded && extracted && configured); }); - console.log("[isInstalled] configured:", configured); - - const result = alpineExists && downloaded && extracted && configured; - console.log("[isInstalled] final result:", result); - resolve(result); - }); -}, + }, /** * Checks if the current device architecture is supported.