aboutsummaryrefslogtreecommitdiff
path: root/files/.zsh/rc/S50_functions
blob: 8667d8d650f61fdc5600e5beda03932d67c45b8c (plain) (blame)
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
mcd() {
    mkdir -p "$1" && cd "$1"
}

ppgrep() {
    pgrep "$@" | xargs --no-run-if-empty ps fp
}

setgov() {
    GOVS=($(cpufreq-info -g))

    if [ -z "$1" ] ; then
        cat <<EOM
setgov GOVNAME

Set CPU governor, available are: $GOVS

Current governor is: $(cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort -u | xargs echo)
EOM
        return
    fi

    if [ ${GOVS[(i)$1]} -le ${#GOVS} ] ; then
        for ((i=0; i<$(nproc); i++)) ; do
            sudo cpufreq-set -c $i -r -g $1
        done
    else
        echo "Unsupported governor: $1"
        return 1
    fi
}

open() {
    if [ $# == 0 ] ; then
        xdg-open .
    else
        xdg-open $*
    fi
}

retry() {
    for i in $(seq 5) ; do
        $* && break || sleep 5
    done
}

datediff() {
    d1=$(date --date "$1" +%s)
    d2=$(date --date "$2" +%s)
    echo $(( (d1 - d2) / 86300 )) days
}

transfer() {
    curl --progress-bar --upload-file "$1" https://transfer.sh/$(basename "$1") | tee /dev/null;
    echo
}

# vim: ft=zsh :