Linuxda taşınabilir program yedeği almak istiyorum (yardım)

Ahmetli

Paylaşımcı
Katılım
5 Ekim 2024
Konular
25
Mesajlar
359
Tepkime puanı
174
Yapaay zeka sitelerine terminal bash scrti yazdırmaya çalışıyorum sonuç hüsran kodlamacı abilerim el atarmısınız bu duruma

#!/bin/bash

# Yönetici izni al
if [ "$(id -u)" -ne 0 ]; then
echo "Bu işlem yönetici (root) izni gerektiriyor."
sudo "$0" "$@"
exit
fi

# Gerekli araçları kontrol et ve yükle
check_tools() {
echo "Gerekli araçları kontrol ediyorum..."

# appimagetool, snap, flatpak, ve diğer gerekli araçları kontrol et
if ! command -v appimagetool &> /dev/null; then
echo "appimagetool aracı bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y appimagetool
fi

if ! command -v flatpak &> /dev/null; then
echo "Flatpak bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y flatpak
fi

if ! command -v snap &> /dev/null; then
echo "Snap bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y snapd
fi
}

# Yüklü programları listele
list_apps() {
echo "Yüklü Snap uygulamaları:"
snap list | awk '{print NR-1 ". " $1}' # Snap uygulamalarını rakamla listele
echo ""

echo "Yüklü Flatpak uygulamaları:"
flatpak list | awk '{print NR-1 ". " $1}' # Flatpak uygulamalarını rakamla listele
echo ""

echo "Yüklü Debian paketleri:"
dpkg --get-selections | awk '{print NR-1 ". " $1}' # Debian uygulamalarını rakamla listele
echo ""
}

# Programı AppImage formatına dönüştür
convert_to_appimage() {
app_name=$1
app_type=$2

echo "Seçilen program: $app_name"

# Programın yedeğini al
if [ "$app_type" == "snap" ]; then
app_path=$(snap info $app_name | grep "installed" | awk '{print $2}')
elif [ "$app_type" == "flatpak" ]; then
app_path=$(flatpak info $app_name | grep "Installed" | awk '{print $2}')
else
app_path=$(which $app_name)
fi

if [ -z "$app_path" ]; then
echo "Uygulama bulunamadı!"
return 1
fi

# AppImage formatına dönüştür
appimage_folder="${HOME}/Desktop/${app_name}_AppImage"
mkdir -p "$appimage_folder"

echo "Uygulama $app_name AppImage formatına dönüştürülüyor..."

# appimagetool kullanarak dönüştürme
appimagetool "$app_path" --output "$appimage_folder"

if [ $? -eq 0 ]; then
echo "Dönüştürme başarılı! AppImage dosyası masaüstüne kaydedildi: $appimage_folder"
else
echo "Dönüştürme sırasında bir hata oluştu."
fi
}

# Ana fonksiyon
main() {
# Gerekli araçları kontrol et
check_tools

# Yüklü programları listele
list_apps

# Kullanıcıdan seçim al
echo "Lütfen dönüştürmek istediğiniz programın numarasını girin:"
read -r choice

# Seçilen programı dönüştür
case $choice in
[1-9]*)
# Snap uygulamaları
app_name=$(snap list | awk "NR==$choice+1 {print \$1}")
convert_to_appimage "$app_name" "snap"
;;
[10-19]*)
# Flatpak uygulamaları
app_name=$(flatpak list | awk "NR==$choice+1 {print \$1}")
convert_to_appimage "$app_name" "flatpak"
;;
[20-29]*)
# Debian paketleri
app_name=$(dpkg --get-selections | awk "NR==$choice+1 {print \$1}")
convert_to_appimage "$app_name" "debian"
;;
*)
echo "Geçersiz seçim."
exit 1
;;
esac
}

# Ana fonksiyonu çalıştır
main
 
bu kodları yapay zekalar yazıyor ve düzgün çalışmıyor
 
Anladığım kadarıyla linux üzerinde bi script bash script hakkında pek bilgim yok ama ufak bi baktım
Secim yaparken yanlis indexleme olabilir hata olabilir diye ufak bi düzeltme yaptım ve bir de appimagetool araştırdığım vakit doğrudan uygulama yedekleme gibi bi özelliğinin olmadığını okudum eğer yanlış çevirmediysem kodu bi dener misiniz ?


#!/bin/bash

# Yönetici izni al
if [ "$(id -u)" -ne 0 ]; then
echo "Bu işlem yönetici (root) izni gerektiriyor."
sudo "$0" "$@"
exit
fi


check_tools() {
echo "Gerekli araçları kontrol ediyorum..."

if ! command -v appimagetool &> /dev/null; then
echo "appimagetool aracı bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y appimagetool
fi

if ! command -v flatpak &> /dev/null; then
echo "Flatpak bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y flatpak
fi

if ! command -v snap &> /dev/null; then
echo "Snap bulunamadı. Yükleniyor..."
sudo apt update && sudo apt install -y snapd
fi
}


list_apps() {
echo "Yüklü Snap uygulamaları:"
snap list | awk '{print NR ". " $1}'
echo ""

echo "Yüklü Flatpak uygulamaları:"
flatpak list | awk '{print NR ". " $1}'
echo ""

echo "Yüklü Debian paketleri:"
dpkg --get-selections | awk '{print NR ". " $1}'
echo ""
}


convert_to_appimage() {
app_name=$1
app_type=$2

echo "Seçilen program: $app_name"


if [ "$app_type" == "snap" ]; then
app_path=$(snap info $app_name | grep "installed" | awk '{print $2}')
elif [ "$app_type" == "flatpak" ]; then
app_path=$(flatpak info $app_name | grep "Installed" | awk '{print $2}')
else
app_path=$(which $app_name)
fi

if [ -z "$app_path" ]; then
echo "Uygulama bulunamadı!"
return 1
fi


appimage_folder="${HOME}/Desktop/${app_name}_AppImage"
mkdir -p "$appimage_folder"

echo "Uygulama $app_name AppImage formatına dönüştürülüyor..."


appimagetool "$appimage_folder" --output "$appimage_folder/${app_name}.AppImage"

if [ $? -eq 0 ]; then
echo "Dönüştürme başarılı! AppImage dosyası masaüstüne kaydedildi: $appimage_folder"
else
echo "Dönüştürme sırasında bir hata oluştu."
fi
}

# Ana fonksiyon
main() {
check_tools
list_apps

# Kullanıcıdan seçim al
echo "Lütfen dönüştürmek istediğiniz programın numarasını girin:"
read -r choice

# Seçilen programı dönüştür
case $choice in
[1-9]*)
app_name=$(snap list | awk "NR==$choice {print \$1}")
convert_to_appimage "$app_name" "snap"
;;
[10-19]*)
app_name=$(flatpak list | awk "NR==$choice {print \$1}")
convert_to_appimage "$app_name" "flatpak"
;;
[20-29]*)
app_name=$(dpkg --get-selections | awk "NR==$choice {print \$1}")
convert_to_appimage "$app_name" "debian"
;;
*)
echo "Geçersiz seçim."
exit 1
;;
esac
}

main
 

Geri
Üst