@@ -186,7 +186,7 @@ const Terminal = {
186186 } ) ;
187187
188188 const alpineExists = await new Promise ( ( resolve , reject ) => {
189- system . fileExists ( `${ filesDir } /alpine.tar.gz ` , false , ( result ) => {
189+ system . fileExists ( `${ filesDir } /alpine` , false , ( result ) => {
190190 resolve ( result == 1 ) ;
191191 } , reject ) ;
192192 } ) ;
@@ -217,6 +217,100 @@ const Terminal = {
217217 resolve ( [ "arm64-v8a" , "armeabi-v7a" , "x86_64" ] . includes ( arch ) ) ;
218218 } , reject ) ;
219219 } ) ;
220+ } ,
221+
222+ backup ( ) {
223+ return new Promise ( async ( resolve , reject ) => {
224+ if ( ! await this . isInstalled ( ) ) {
225+ reject ( "Alpine is not installed." )
226+ return
227+ }
228+ const cmd = `
229+ set -e
230+
231+ INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/axs"
232+
233+ if [ "$FDROID" = "true" ]; then
234+ INCLUDE_FILES="$INCLUDE_FILES $PREFIX/libtalloc.so.2 $PREFIX/libproot-xed.so"
235+ fi
236+
237+
238+ tar -cf $PREFIX/aterm_backup.tar $INCLUDE_FILES
239+ echo "ok"
240+ `
241+ const result = await Executor . execute ( cmd )
242+ if ( result === "ok" ) {
243+ resolve ( cordova . file . dataDirectory + "aterm_backup.tar" )
244+ } else {
245+ reject ( result )
246+ }
247+ } ) ;
248+ } ,
249+ restore ( ) {
250+ return new Promise ( async ( resolve , reject ) => {
251+ if ( await this . isAxsRunning ( ) ) {
252+ await this . stopAxs ( )
253+ }
254+ const cmd = `
255+ set -e
256+
257+ if [ -f "$PREFIX/aterm_backup.tar" ]; then
258+
259+ else
260+ echo "Backup File does not exist"
261+ fi
262+
263+
264+ INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/axs"
265+
266+ if [ "$FDROID" = "true" ]; then
267+ INCLUDE_FILES="$INCLUDE_FILES $PREFIX/libtalloc.so.2 $PREFIX/libproot-xed.so"
268+ fi
269+
270+ for item in $INCLUDE_FILES; do
271+ rm -rf -- "$item"
272+ done
273+
274+
275+ tar -xf $PREFIX/aterm_backup.tar -C $PREFIX
276+ echo "ok"
277+ `
278+ const result = await Executor . execute ( cmd )
279+ if ( result === "ok" ) {
280+ resolve ( result )
281+ } else {
282+ reject ( result )
283+ }
284+ } ) ;
285+ } ,
286+ uninstall ( ) {
287+ return new Promise ( async ( resolve , reject ) => {
288+ if ( await this . isAxsRunning ( ) ) {
289+ await this . stopAxs ( )
290+ }
291+
292+ const cmd = `
293+ set -e
294+
295+ INCLUDE_FILES="$PREFIX/alpine $PREFIX/.downloaded $PREFIX/.extracted $PREFIX/axs"
296+
297+ if [ "$FDROID" = "true" ]; then
298+ INCLUDE_FILES="$INCLUDE_FILES $PREFIX/libtalloc.so.2 $PREFIX/libproot-xed.so"
299+ fi
300+
301+ for item in $INCLUDE_FILES; do
302+ rm -rf -- "$item"
303+ done
304+
305+ echo "ok"
306+ `
307+ const result = await Executor . execute ( cmd )
308+ if ( result === "ok" ) {
309+ resolve ( result )
310+ } else {
311+ reject ( result )
312+ }
313+ } ) ;
220314 }
221315} ;
222316
0 commit comments