various fixes and flidas support
[distro-functions] / src / package-manager-abstractions
index 20dbc054d523b8afaa9c74da76dcc57d456e4476..6d433d249b0858f94032bfb4c23e5308ed4add9b 100644 (file)
@@ -62,11 +62,27 @@ elif command -v apt-get &>/dev/null; then
         fi
     }
     pi() {
+        if dpkg -s -- "$@" &>/dev/null; then
+            return 0
+        fi
         pupdate
         local s; [[ $EUID != 0 ]] && s=sudo
         $s apt-get -y install --purge --auto-remove "$@"
     }
+    pi() {
+        if dpkg -s -- "$@" &>/dev/null; then
+            return 0
+        fi
+        pupdate
+        local s; [[ $EUID != 0 ]] && s=sudo
+        $s $PI_PREFIX apt-get -y install --purge --auto-remove "$@"
+    }
+
     pi-nostart() {
+        if dpkg -s -- "$@" &>/dev/null; then
+            return 0
+        fi
+        pupdate
         local s; [[ $EUID != 0 ]] && s=sudo
         local f=/usr/sbin/policy-rc.d
         $s dd of=$f <<EOF
@@ -74,7 +90,7 @@ elif command -v apt-get &>/dev/null; then
 exit 101
 EOF
         $s chmod +x $f
-        pi "$@"
+        $s apt-get -y install --purge --auto-remove "$@"
         $s rm $f
     }
     pf() {
@@ -105,7 +121,11 @@ EOF
     }
     # package info
     pl() {
-        aptitude show "$@"
+        if type -p aptitude &>/dev/null; then
+            aptitude show "$@"
+        else
+            apt-cache show "$@"
+        fi
     }
     pfile() {
         local file=$1
@@ -115,13 +135,14 @@ EOF
         # package name. So, commenting this, waiting to find
         # a config file only tracked by ucfq to see if it gives the
         # package name and if I can identify this kind of file.
-#        if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
-#            ucfq $file
+        # if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
+        #    ucfq $file
 
         if [[ $file == */* ]]; then
             apt-file find -x "$file"\$
         else
             apt-file find -x /"$file"\$
+            update-alternatives --list "$file" 2>/dev/null
         fi
     }
     pkgfiles() {