debian.plugin.zsh 3.13 KB
Newer Older
1
2
3
# Authors:
# https://github.com/AlexBio
# https://github.com/dbb
Daniel Bolton's avatar
Daniel Bolton committed
4
5
6
#
# Debian-related zsh aliases and functions for zsh

7
8
9
10
11
12
13
# Set to 'apt-get' or 'aptitude'
apt_pref='aptitude'

# Use sudo by default if it's installed
if [[ -e $( which sudo ) ]]; then
    use_sudo=1
fi
Daniel Bolton's avatar
Daniel Bolton committed
14
15
16
17

# Aliases ###################################################################

# Some self-explanatory aliases
18
alias acs="apt-cache search"
Daniel Bolton's avatar
Daniel Bolton committed
19
alias aps='aptitude search'
20
21
alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \
		--no-gui --disable-columns search"	# search package
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

# apt-file
alias afs='apt-file search --regexp'


# These are apt-get only
alias asrc='apt-get source'
alias ap='apt-cache policy'

# superuser operations ################
if [[ $use_sudo -eq 1 ]]; then
    alias ai="sudo $apt_pref install"
    alias ad="sudo $apt_pref update"
    alias afu='sudo apt-file update'
    alias ag="sudo $apt_pref upgrade"
    alias adg="sudo $apt_pref update && sudo $apt_pref upgrade"
    alias ap="sudo $apt_pref purge"
    alias ar="sudo $apt_pref remove"

    if [[ $apt_pref -eq 'apt-get' ]]; then
        alias ads="sudo $apt_pref dselect-upgrade"
    fi
    
    # Install all .deb files in the current directory.
    # Warning: you will need to put the glob in single quotes if you use:
    # glob_subst
    alias di='sudo dpkg -i ./*.deb'

    # Remove ALL kernel images and headers EXCEPT the one in use
    alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'
else
    alias ai='apin' 
    alias ad='su -lc "'"$apt_pref"' update" root'
    alias afu='su -lc "apt-file update"'
    alias ag='su -lc "'"$apt_pref"' safe-upgrade" root'
    alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root'
    alias di='su -lc "dpkg -i ./*.deb" root'
    # Remove ALL kernel images and headers EXCEPT the one in use
    alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root'
fi
# end superuser operations ##########

Daniel Bolton's avatar
Daniel Bolton committed
64
65
66
67

# print all installed packages
alias allpkgs='aptitude search -F "%p" --disable-columns ~i'

68

Daniel Bolton's avatar
Daniel Bolton committed
69
70
71
72

# Create a basic .deb package
alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'

73

Daniel Bolton's avatar
Daniel Bolton committed
74
75
76
77
78



# Functions #################################################################

79
80
81
82
83
84
85
# install packages without sudo
apin() {
    cmd="su -lc 'aptitude -P install $@' root"
    print "$cmd"
    eval "$cmd"
}

Daniel Bolton's avatar
Daniel Bolton committed
86
87
88
89
90
91
92
93
94
95
96
97
98
# create a simple script that can be used to 'duplicate' a system
apt-copy() {
	print '#!/bin/sh'"\n" > apt-copy.sh

	list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;')

	print 'aptitude install '"$list\n" >> apt-copy.sh

	chmod +x apt-copy.sh
}


# Kernel-package building shortcut
99
100
101
102
kerndeb () {
    # temporarily unset MAKEFLAGS ( '-j3' will fail )
    MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )		
    print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
Daniel Bolton's avatar
Daniel Bolton committed
103
104
105
106
107
108
109
110
111
	appendage='-custom' # this shows up in $ (uname -r )
    revision=$(date +"%Y%m%d") # this shows up in the .deb file name

    make-kpkg clean

    time fakeroot make-kpkg --append-to-version "$appendage" --revision \
        "$revision" kernel_image kernel_headers
}