-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcasedpkginstaller.sh
More file actions
executable file
·106 lines (91 loc) · 3.13 KB
/
casedpkginstaller.sh
File metadata and controls
executable file
·106 lines (91 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash
#Ett skript som hjälper dig installera .debpaket med hjälp utav dialog
function checking { #Funktion som kontroller om dialog är installerat
dpkg-query -W -f='${Status}\n' dialog > /tmp/kontroll
Testing2=`cat /tmp/kontroll`
if [ "$Testing2" = "install ok installed" ]; then
checkroot
elif [ "$Testing2" = "unknown ok not-installed" ]; then
echo -e "Det krävs ett program som heter dialog för att köra skriptet.\nVill du installera det?"
select yn in "Yes" "No"; do
case $yn in
Yes ) sudo apt-get install dialog; break;;
No ) exit;;
esac
done
checkroot
fi
}
function run1 { #Skapar en funktion som frågar om du vill köra skriptet
dialog --backtitle "Debian dpkg installer" --title "Vill du köra skriptet?"\
--yesno "Vill du köra scriptet som installerar dpkgfiler?" 10 60
}
function run2 { #Skapar en funktion som låter dig välja mellan att installera nya paket eller se dem som finns installerade.
dialog --menu "Välj vad du vill göra" 10 60 2 Installera "Installera paket"\
Installerade "Kolla vilka du har installerarade" 2> /tmp/dpkg
Val=`cat /tmp/dpkg`
}
function run3 { #Funktion som berättar att vi avslutar programmet samt rensar terminalen
dialog --backtitle "Då avslutar vi" --msgbox "Då avslutar vi" 10 60
clear
exit 0
}
function install { #Funktion som ber dig välja flaggor till din installation och sparar dem sen i en fil som vi kan hämta när det är dax att installera
dialog --checklist "Välj flaggor , Det flesta flaggor kräver att du använder -i som är installera" 20 100 3\
-i "installera" on -G "Installera inte programmet om det redan finns en nyare version" off\
-E "Installerar inte om samma version finns" on 2> /tmp/dpkg1
if [ $? = 1 ]; then
run3
fi
dialog --inputbox "Paketnamn" 10 60 2> /tmp/testing2
Testing2=`cat /tmp/testing2`
find / -name $Testing2*.deb 1> /tmp/testing
Val2=`cat /tmp/testing`
sed 's/"//g' /tmp/dpkg1 > /tmp/dpkg2
Val3=`cat /tmp/dpkg2`
dpkg $Val3 $Val2 1> /tmp/programlogg 2> /tmp/logg2
}
function installed { #Funktion som visar installerade program
dpkg -l | awk '{ print $2 }' | tail -f -n +7|nl > /tmp/lista
dialog --title "Installerade program" --textbox /tmp/lista 40 200
}
function close { #Funktionen som ska köras när programmet avslutar , antingen visar det en logg hur det gick eller så berättar den att filen inte finns.
Filen=`cat /tmp/programlogg`
if [ -s $Filen ]; then
dialog --msgbox "Hittade inga program med det namnet eller så har du redan det installerat" 10 60
else
dialog --title "Installationen gick bra" --textbox /tmp/programlogg 20 100
fi
}
function clean { #Funktion som städar /tmp-katalogen samt rensar terminalen
sudo rm -f /tmp/*
clear
}
function cancel { #Funktion som rensar terminalen samt avbryter
clear
exit 0
}
function checkroot {
if [ $EUID -ne 0 ]; then #Kontrollerar om du är root
dialog --msgbox "Du måste tyvärr vara root för att köra detta program" 10 60
cancel
else
run1
fi
if [ $? = 0 ]; then
run2
elif [ $? = 1 ]; then
run3
fi
if [ $Val = Installera ]; then
install
close
elif [ $Val = Installerade ]; then
installed
else
run3
fi
clean
}
checking
exit 0