From 860011c4c529e1996ea2edebd1bed27b0ddb8e7b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonathan=20Schmidt-Domin=C3=A9?= Date: Wed, 2 Mar 2011 19:39:45 +0100 Subject: [PATCH] Better servicemenu(de)installation --- .../services/servicemenudeinstallation | 17 ++++++++++++----- src/settings/services/servicemenuinstallation | 19 +++++++++++++------ 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 -- 2.47.3