Browse code

Extend root ops, switch apt-copy to plain zsh

Daniel Bolton authored on 07/08/2011 at 20:51:14
Showing 1 changed files
... ...
@@ -4,8 +4,13 @@
4 4
 #
5 5
 # Debian-related zsh aliases and functions for zsh
6 6
 
7
-# Set to 'apt-get' or 'aptitude'
8
-apt_pref='aptitude'
7
+# Use aptitude if installed, or apt-get if not.
8
+# You can just set apt_pref='apt-get' to override it.
9
+if [[ -e $( which aptitude ) ]]; then
10
+    apt_pref='aptitude'
11
+else
12
+    apt_pref='apt-get'
13
+fi
9 14
 
10 15
 # Use sudo by default if it's installed
11 16
 if [[ -e $( which sudo ) ]]; then
... ...
@@ -13,6 +18,10 @@ if [[ -e $( which sudo ) ]]; then
13 13
 fi
14 14
 
15 15
 # Aliases ###################################################################
16
+# These are for more obscure uses of apt-get and aptitude that aren't covered
17
+# below.
18
+alias ag='apt-get'
19
+alias at='aptitude'
16 20
 
17 21
 # Some self-explanatory aliases
18 22
 alias acs="apt-cache search"
... ...
@@ -28,19 +37,23 @@ alias afs='apt-file search --regexp'
28 28
 alias asrc='apt-get source'
29 29
 alias ap='apt-cache policy'
30 30
 
31
-# superuser operations ################
31
+# superuser operations ######################################################
32 32
 if [[ $use_sudo -eq 1 ]]; then
33
-    alias ai="sudo $apt_pref install"
33
+# commands using sudo #######
34
+    alias aac="sudo $apt_pref autoclean"
35
+    alias abd="sudo $apt_pref build-dep"
36
+    alias ac="sudo $apt_pref clean"
34 37
     alias ad="sudo $apt_pref update"
38
+    alias adg="sudo $apt_pref update && sudo $apt_pref upgrade"
39
+    alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade"
35 40
     alias afu='sudo apt-file update'
36 41
     alias ag="sudo $apt_pref upgrade"
37
-    alias adg="sudo $apt_pref update && sudo $apt_pref upgrade"
42
+    alias ai="sudo $apt_pref install"
38 43
     alias ap="sudo $apt_pref purge"
39 44
     alias ar="sudo $apt_pref remove"
40 45
 
41
-    if [[ $apt_pref -eq 'apt-get' ]]; then
42
-        alias ads="sudo $apt_pref dselect-upgrade"
43
-    fi
46
+    # apt-get only
47
+    alias ads="sudo $apt_pref dselect-upgrade"
44 48
     
45 49
     # Install all .deb files in the current directory.
46 50
     # Warning: you will need to put the glob in single quotes if you use:
... ...
@@ -48,25 +61,54 @@ if [[ $use_sudo -eq 1 ]]; then
48 48
     alias di='sudo dpkg -i ./*.deb'
49 49
 
50 50
     # Remove ALL kernel images and headers EXCEPT the one in use
51
-    alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'
51
+    alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
52
+        ?not(~n`uname -r`))'
53
+
54
+
55
+# commands using su #########
52 56
 else
53
-    alias ai='apin' 
57
+    alias aac='su -ls "'"$apt_pref"' autoclean" root'
58
+    abd() {
59
+        cmd="su -lc '$apt_pref build-dep $@' root"
60
+        print "$cmd"
61
+        eval "$cmd"
62
+    }
63
+    alias ac='su -ls "'"$apt_pref"' clean" root'
54 64
     alias ad='su -lc "'"$apt_pref"' update" root'
65
+    alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root'
66
+    alias adu='su -lc "'"$apt_pref"' update && aptitude dist-upgrade" root'
55 67
     alias afu='su -lc "apt-file update"'
56 68
     alias ag='su -lc "'"$apt_pref"' safe-upgrade" root'
57
-    alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root'
69
+    ai() {
70
+        cmd="su -lc 'aptitude -P install $@' root"
71
+        print "$cmd"
72
+        eval "$cmd"
73
+    }
74
+    ap() {
75
+        cmd="su -lc '$apt_pref -P purge $@' root"
76
+        print "$cmd"
77
+        eval "$cmd"
78
+    }
79
+    ar() {
80
+        cmd="su -lc '$apt_pref -P remove $@' root"
81
+        print "$cmd"
82
+        eval "$cmd"
83
+    }
84
+
85
+    # Install all .deb files in the current directory
86
+    # Assumes glob_subst is off
58 87
     alias di='su -lc "dpkg -i ./*.deb" root'
88
+
59 89
     # Remove ALL kernel images and headers EXCEPT the one in use
60
-    alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root'
90
+    alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \
91
+        ?not(~n`uname -r`))'\'' root'
61 92
 fi
62
-# end superuser operations ##########
63 93
 
64 94
 
95
+# Misc. #####################################################################
65 96
 # print all installed packages
66 97
 alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
67 98
 
68
-
69
-
70 99
 # Create a basic .deb package
71 100
 alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
72 101
 
... ...
@@ -75,23 +117,19 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
75 75
 
76 76
 
77 77
 # Functions #################################################################
78
-
79
-# install packages without sudo
80
-apin() {
81
-    cmd="su -lc 'aptitude -P install $@' root"
82
-    print "$cmd"
83
-    eval "$cmd"
84
-}
85
-
86 78
 # create a simple script that can be used to 'duplicate' a system
87 79
 apt-copy() {
88
-	print '#!/bin/sh'"\n" > apt-copy.sh
80
+    print '#!/bin/sh'"\n" > apt-copy.sh
81
+
82
+    cmd="$apt_pref install -s "
89 83
 
90
-	list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;')
84
+    for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; {
85
+        cmd="${cmd} ${p}"
86
+    }
91 87
 
92
-	print 'aptitude install '"$list\n" >> apt-copy.sh
88
+    print $cmd "\n" >> apt-copy.sh
93 89
 
94
-	chmod +x apt-copy.sh
90
+    chmod +x apt-copy.sh
95 91
 }
96 92
 
97 93