summaryrefslogtreecommitdiff
path: root/.zsh/zshfunctions
blob: 4a7f0b956da14f521014909666a9237820e0ee1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
if [[ -n $_IS_GENTOO ]]; then
    # Nice mappings to restart/... the services
    Start Stop Reload Restart ()
    {
        local SUDO

        [[ $UID != 0 ]] && SUDO="sudo"
        $SUDO /etc/init.d/$1 ${0:l}
    }
fi

# Quick find
f() 
{
    echo "find . -iname \"*$1*\""
    find . -iname "*$1*"
}

# zman -- easier browsing of zsh manpage
# from zsh-users list, enhanced
zman() {
    PAGER="less -g -s '+/(?i)^       "$1"'" man zshall
}

check_libs()
{
    local pmapc="
[Fields Display]
Mapping"

    local libs found=0

    for i in $(ps -A -o 'pid='); do
        libs=$(pmap -q -C<(<<<$pmapc) $i |
               grep '(deleted)' |
               grep -v '\<zero\>\|\[aio\]\|SYSV0\|\<drm\>' |
               tr -s ' ' |
               cut -d' ' -f3 |
               sort -u)

        if [[ -n $libs ]]; then
            (($found)) && echo #newline between entries

            found=1

            echo $libs
            echo '  ↳' $(ps -o 'args=' $i)
        fi
    done

    return $found
}

menc()
{
    local p

    read -rs "p?Password: "
    echo

    echo "Loading ~/schreiben/"
    echo $p | encfs --stdinpass ~/.enc/schreiben/ ~/schreiben/

    unset p
}

# list the current enabled gcc flags
# based on a script by mv
list_cc_flags()
{
    local funcname=${0##*/}

    _Usage_$0 ()
    {
        printf '%s\n' "Usage: $funcname c|o [gcc-Flags e.g. -march=native -O2]
        Show which compile|optimization flags are selected when you chose gcc-Flags"
        return ${1:-1}
    }

    case "${1}" in
        c)
            shift
            gcc -v -c -Q "${@}" -o /dev/null -x c - 2>&1 <<PROG
int main(){return 0;}
PROG
            ;;
        o)
            shift
            gcc -c -Q "${@}" -o /dev/null --help=optimizer 2>&1;;
        *)  _Usage_$0;;
    esac
}

if [[ -n $_IS_GENTOO ]]; then
    # Change to the directory of a specific package
    _cdu ()
    {
        cd ${1:h}
    }

    # unpacks a specific package
    _unpack ()
    {
        ebuild $1 clean unpack
    }

    # set job count to 1 if there is only one package to install
    emerge()
    {
        if [[ $# < 3 ]]; then
            command emerge --jobs=1 $@
        else
            command emerge $@
        fi
    }

    # keyword a specific package using flaggie
    # relies on the $_kw variable set in .zshenv
    kw()
    {
        if [[ -z $1 ]]; then
            echo "Error: Need the package"
            return 1
        fi

        if whence flaggie NOE; then
            # use 'flaggie'
            flaggie $1 "+$_kw"
        else
            echo "Error: flaggie not installed"
            echo "Do it yourself!"
            return 1
        fi
    }
fi