┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/settings/services/servicemenudeinstallation17
-rwxr-xr-xsrc/settings/services/servicemenuinstallation19
2 files changed, 25 insertions, 11 deletions
diff --git a/src/settings/services/servicemenudeinstallation b/src/settings/services/servicemenudeinstallation
index a1c71efa7..24fd7bf10 100755
--- a/src/settings/services/servicemenudeinstallation
+++ b/src/settings/services/servicemenudeinstallation
@@ -12,11 +12,18 @@ dir = archive + "-dir"
# try: installKDE4
# try: install.sh
# try: install
-dd = Dir.new(dir)
-dd.read
-dd.read
-dir += "/" + dd.read
-dd = nil
+while true
+ dd = Dir.new(dir)
+ break if dd.count != 3
+ odir = dir
+ for entry in dd
+ dir += "/" + entry if entry != "." && entry != ".."
+ end
+ if !File.directory? dir
+ dir = odir
+ break
+ end
+end
Dir.chdir(dir)
def fail()
system("kdialog --passivepopup \"Deinstallation failed\" 15")
diff --git a/src/settings/services/servicemenuinstallation b/src/settings/services/servicemenuinstallation
index b99cc3b00..ac2cf8f1c 100755
--- a/src/settings/services/servicemenuinstallation
+++ b/src/settings/services/servicemenuinstallation
@@ -65,11 +65,18 @@ exit(-1) if !uncompress(archive, dir)
# try: installKDE4
# try: install.sh
# try: install
-dd = Dir.new(dir)
-dd.read
-dd.read
-dir += "/" + dd.read
-dd = nil
+while true
+ dd = Dir.new(dir)
+ break if dd.count != 3
+ odir = dir
+ for entry in dd
+ dir += "/" + entry if entry != "." && entry != ".."
+ end
+ if !File.directory? dir
+ dir = odir
+ break
+ end
+end
Dir.chdir(dir)
def fail()
system("kdialog --passivepopup \"Installation failed\" 15")
@@ -79,4 +86,4 @@ if !((File.exist?(file = "./install-it.sh") || File.exist?(file = "./install-it"
fail() if !File.exist?(file = "./installKDE4.sh") && !File.exist?(file = "./installKDE4") && !File.exist?(file = "./install.sh") && !File.exist?(file = "./install")
File.new(file).chmod(0700)
fail() if !system(file + " --local") && !system(file + "--local-install") && !system(file + " --install")
-end
+end