summaryrefslogtreecommitdiff
path: root/.zsh/zshfunctions
blob: fb24feeb32e08e9815e9ce7554c8a4f3f7da3b9e (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
# Nice mappings to restart/... the services
Start Stop Reload Restart ()
{
    local SUDO

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

# 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
}

# Change to the directory of a specific package
_cdu ()
{
    cd ${1:h}
}

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

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
}

# 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
}