9494
9595 if [ " $app_type " = " native" ]; then
9696 cat >> " $folder_path /install.sh" << 'EOF '
97+ progress_phase "prepare" 0 "Preparing to install..."
9798package_install_and_check "$package_name"
99+ progress_done
98100EOF
99101 elif [ " $is_repo_pkg " = " yes" ]; then
100102 cat >> " $folder_path /install.sh" << EOF
101- supported_distro="$supported_distro "
102-
103- # Check if a distro is selected
104- if [ -z "\$ selected_distro" ]; then
105- print_failed "Error: No distro selected"
106- exit 1
107- fi
103+ progress_phase "prepare" 0 "Preparing distro packages..."
108104
109105# Install based on distro type
110- case "\$ selected_distro " in
106+ case "\$ SELECTED_DISTRO " in
111107 "debian"|"ubuntu")
112- \$ selected_distro update -y
113- \$ selected_distro install $package_name -y
108+ pd_package_install_and_check "$package_name "
114109 ;;
115110 "fedora")
116- \$ selected_distro update -y
117- \$ selected_distro install $package_name -y
111+ pd_package_install_and_check "$package_name "
112+ ;;
113+ "arch*")
114+ pd_package_install_and_check "$package_name "
118115 ;;
119116 *)
120- echo "Unsupported distribution: \$ selected_distro "
117+ echo "Unsupported distribution: \$ SELECTED_DISTRO "
121118 exit 1
122119 ;;
123120esac
124121
125122fix_exec "pd_added/$package_name .desktop" "--no-sandbox"
123+ progress_done
126124EOF
127125 else
128126 # Extract the base URL (everything before /releases/download/)
152150
153151appimage_filename="$filename_pattern "
154152
155- check_and_delete "\$ {TMPDIR}/\$ {appimage_filename} \$ {PREFIX }/share/applications/pd_added/$package_name .desktop"
153+ check_and_delete "\$ {TMPDIR}/\$ {appimage_filename} \$ {TERMUX_PREFIX }/share/applications/pd_added/$package_name .desktop"
156154
157- print_success "Downloading $package_name AppImage..."
155+ progress_phase "download" 0 "Downloading $package_name AppImage..."
158156download_file "\$ {page_url}/releases/download/\$ {version}/\$ {appimage_filename}"
159157install_appimage "\$ {appimage_filename}" "$package_name "
160158
168166fi
169167
170168print_success "Creating desktop entry..."
171- cat <<DESKTOP_EOF | tee "\$ {PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
169+ cat <<DESKTOP_EOF | tee "\$ {TERMUX_PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
172170[Desktop Entry]
173171Name=${package_name^}
174172Exec=pdrun \$ {run_cmd}
@@ -180,6 +178,7 @@ Comment=$package_name
180178MimeType=x-scheme-handler/$package_name ;
181179Categories=${selected_categories[0]} ;
182180DESKTOP_EOF
181+ progress_done
183182EOF
184183 elif [[ " $download_url " =~ \. deb$ ]]; then
185184 # Extract the filename pattern from the download URL
@@ -199,42 +198,34 @@ case "\$app_arch" in
199198 *) print_failed "Unsupported architectures" ;;
200199esac
201200
202- if [[ "\$ selected_distro " == "ubuntu" ]] || [[ "\$ selected_distro " == "debian" ]]; then
201+ if [[ "\$ SELECTED_DISTRO " == "ubuntu" ]] || [[ "\$ SELECTED_DISTRO " == "debian" ]]; then
203202 filename="$filename_pattern "
204203 temp_download="\$ TMPDIR/\$ {filename}"
205204 download_file "\$ temp_download" "\$ {page_url}/releases/download/\$ {version}/\$ {filename}"
205+ pd_check_and_delete "/root/\$ {filename}"
206+ "\$ {SELECTED_DISTRO_TYPE}"-distro login "\$ SELECTED_DISTRO" -- cp "\$ temp_download" "/root/\$ {filename}"
207+
208+ pd_update_sys
206209 distro_run "
207- check_and_delete '/root/\$ {filename}'
208- "
209- if [[ "\$ selected_distro_type" == "chroot" ]]; then
210- su -c "cp '\$ temp_download' '\$ {working_dir}/\$ {filename}'"
211- else
212- cp "\$ temp_download" "\$ {working_dir}/\$ {filename}"
213- fi
214- distro_run "
215- sudo apt update -y -o Dpkg::Options::='--force-confnew'
216- sudo apt install /root/\$ {filename} -y
217- check_and_delete '/root/\$ {filename}'
210+ apt install /root/\$ {filename} -y
218211"
219- elif [[ "\$ selected_distro" == "fedora" ]]; then
212+ pd_check_and_delete "/root/\$ {filename}"
213+
214+ elif [[ "\$ SELECTED_DISTRO" == "fedora" ]]; then
220215 filename="$filename_pattern "
221216 temp_download="\$ TMPDIR/\$ {filename}"
222217 download_file "\$ temp_download" "\$ {page_url}/releases/download/\$ {version}/\$ {filename}"
223- distro_run "
224- check_and_delete '/root/app_installer'
225- check_and_delete '/root/\$ {filename}'
226- "
227- if [[ "\$ selected_distro_type" == "chroot" ]]; then
228- su -c "cp '\$ temp_download' '\$ {working_dir}/\$ {filename}'"
229- else
230- cp "\$ temp_download" "\$ {working_dir}/\$ {filename}"
231- fi
218+ pd_check_and_delete "/root/app_installer"
219+ pd_check_and_delete "/root/\$ {filename}"
220+ "\$ {SELECTED_DISTRO_TYPE}"-distro login "\$ SELECTED_DISTRO" -- cp "\$ temp_download" "/root/\$ {filename}"
221+
222+ pd_package_install_and_check --just "ar atk dbus-libs libnotify libXtst nss alsa-lib pulseaudio-libs libXScrnSaver glibc gtk3 mesa-libgbm libX11-xcb libappindicator-gtk3"
223+
232224 distro_run "
233225cd /root
234226check_and_create_directory 'app_installer'
235227mv \$ {filename} app_installer/
236228cd app_installer
237- sudo dnf install -y ar atk dbus-libs libnotify libXtst nss alsa-lib pulseaudio-libs libXScrnSaver glibc gtk3 mesa-libgbm libX11-xcb libappindicator-gtk3
238229ar x \$ {filename}
239230extract 'data.tar.xz'
240231mv opt/* /opt
255246fi
256247
257248print_success "Creating desktop entry..."
258- cat <<DESKTOP_EOF | tee "\$ {PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
249+ cat <<DESKTOP_EOF | tee "\$ {TERMUX_PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
259250[Desktop Entry]
260251Name=${package_name^}
261252Exec=pdrun \$ {run_cmd}
@@ -267,6 +258,7 @@ Comment=$package_name
267258MimeType=x-scheme-handler/$package_name ;
268259Categories=${selected_categories[0]} ;
269260DESKTOP_EOF
261+ progress_done
270262EOF
271263 else
272264 # For tar/archive installations
@@ -282,7 +274,7 @@ page_url="$base_url"
282274working_dir="\$ {distro_path}/opt"
283275
284276# Check if a distro is selected
285- if [ -z "\$ selected_distro " ]; then
277+ if [ -z "\$ SELECTED_DISTRO " ]; then
286278 print_failed "Error: No distro selected"
287279 exit 1
288280fi
@@ -298,16 +290,11 @@ filename="$filename_pattern"
298290temp_download="\$ TMPDIR/\$ {filename}"
299291download_file "\$ temp_download" "\$ {page_url}/releases/download/\$ {version}/\$ {filename}"
300292
301- distro_run "
302- check_and_delete ' /opt/$package_name '
303- check_and_create_directory '/opt/ $package_name '
304- "
293+ pd_check_and_delete "/opt/ $package_name "
294+ pd_check_and_create_directory " /opt/$package_name "
295+
296+ "\$ {SELECTED_DISTRO_TYPE}"-distro login " \$ SELECTED_DISTRO" -- cp " \$ temp_download" " \$ {working_dir}/ $package_name / \$ {filename}"
305297
306- if [[ "\$ selected_distro_type" == "chroot" ]]; then
307- su -c "cp '\$ temp_download' '\$ {working_dir}/$package_name /\$ {filename}'"
308- else
309- cp "\$ temp_download" "\$ {working_dir}/$package_name /\$ {filename}"
310- fi
311298
312299distro_run "
313300cd /opt/$package_name
325312fi
326313
327314print_success "Creating desktop entry..."
328- cat <<DESKTOP_EOF | tee "\$ {PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
315+ cat <<DESKTOP_EOF | tee "\$ {TERMUX_PREFIX }"/share/applications/pd_added/$package_name .desktop >/dev/null
329316[Desktop Entry]
330317Name=${package_name^}
331318Exec=pdrun \$ {run_cmd}
@@ -337,6 +324,7 @@ Comment=$package_name
337324MimeType=x-scheme-handler/$package_name ;
338325Categories=${selected_categories[0]} ;
339326DESKTOP_EOF
327+ progress_done
340328EOF
341329 fi
342330 fi
@@ -354,64 +342,69 @@ create_uninstall_script() {
354342 cat > " $folder_path /uninstall.sh" << EOF
355343#!/data/data/com.termux/files/usr/bin/bash
356344
345+ progress_phase "cleanup" 0 "Removing $package_name ..."
357346package_remove_and_check "$package_name "
347+ progress_done
358348EOF
359349 elif [ " $is_repo_pkg " = " yes" ]; then
360350 cat > " $folder_path /uninstall.sh" << EOF
361351#!/data/data/com.termux/files/usr/bin/bash
362352
363- case "\$ selected_distro" in
353+ progress_phase "cleanup" 0 "Removing $package_name ..."
354+ case "\$ SELECTED_DISTRO" in
364355 "debian"|"ubuntu")
365- \$ selected_distro remove $package_name -y
356+ \$ SELECTED_DISTRO remove $package_name -y
366357 ;;
367358 "fedora")
368- \$ selected_distro remove $package_name -y
359+ \$ SELECTED_DISTRO remove $package_name -y
369360 ;;
370361 *)
371- echo "Unsupported distribution: \$ selected_distro "
362+ echo "Unsupported distribution: \$ SELECTED_DISTRO "
372363 exit 1
373364 ;;
374365esac
375366
376- check_and_delete "\$ PREFIX/share/applications/pd_added/$package_name .desktop"
367+ check_and_delete "\$ TERMUX_PREFIX/share/applications/pd_added/$package_name .desktop"
368+ progress_done
377369EOF
378370 else
379371 if [[ " $download_url " =~ \. AppImage$ ]]; then
380372 # For AppImage uninstallation
381373 cat > " $folder_path /uninstall.sh" << EOF
382374#!/data/data/com.termux/files/usr/bin/bash
383375
376+ progress_phase "cleanup" 0 "Removing $package_name AppImage..."
384377check_and_delete "\$ {distro_path}/opt/AppImageLauncher/$package_name "
385378check_and_delete "\$ {distro_path}/usr/share/icons/hicolor/*/apps/$package_name .png"
386- check_and_delete "\$ {PREFIX}/share/applications/pd_added/$package_name .desktop"
379+ check_and_delete "\$ {TERMUX_PREFIX}/share/applications/pd_added/$package_name .desktop"
380+ progress_done
387381EOF
388382 elif [[ " $download_url " =~ \. deb$ ]]; then
389383 cat > " $folder_path /uninstall.sh" << EOF
390384#!/data/data/com.termux/files/usr/bin/bash
391385
392- if [[ "\$ selected_distro" == "ubuntu" ]] || [[ "\$ selected_distro" == "debian" ]]; then
393- distro_run "
394- sudo apt remove $package_name -y
395- "
396- elif [[ "\$ selected_distro" == "fedora" ]]; then
386+ if [[ "\$ SELECTED_DISTRO" == "ubuntu" ]] || [[ "\$ SELECTED_DISTRO" == "debian" ]]; then
397387 distro_run "
398- rm -rf '/opt/ $package_name '
388+ apt remove $package_name -y
399389"
390+ elif [[ "\$ SELECTED_DISTRO" == "fedora" ]]; then
391+ pd_check_and_delete "/opt/$package_name "
400392else
401393 print_failed "Unsupported distro"
402394fi
403395
404- check_and_delete "\$ {PREFIX}/share/applications/pd_added/$package_name .desktop"
396+ check_and_delete "\$ {TERMUX_PREFIX}/share/applications/pd_added/$package_name .desktop"
397+ progress_done
405398EOF
406399 else
407400 cat > " $folder_path /uninstall.sh" << EOF
408401#!/data/data/com.termux/files/usr/bin/bash
409402
410- distro_run "
411- check_and_delete '/opt/$package_name '
412- "
403+ progress_phase "cleanup" 0 "Removing $package_name ..."
404+ pd_check_and_delete '/opt/$package_name '
413405
414- check_and_delete "\$ {PREFIX}/share/applications/pd_added/$package_name .desktop"
406+ check_and_delete "\$ {TERMUX_PREFIXFIX}/share/applications/pd_added/$package_name .desktop"
407+ progress_done
415408EOF
416409 fi
417410 fi
0 commit comments