zshrc.d/30-functions.zrc
author Mikael Berthe <mikael@lilotux.net>
Sat, 14 Jul 2012 23:13:35 +0200
changeset 6 7671e95ab8b0
parent 5 5dbc9ebf690c
child 37 9c238177f98a
permissions -rw-r--r--
Change my local mkcd alias into a function I was grepping for my mkcd alias in the wrong terminal and found another version, which turned out to be a good thing as Frank's implementation looks better :) https://dev.0x50.de/projects/ftzsh/repository/revisions/master/entry/functions/mkcd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
#############
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
# Functions #
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
#############
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
# Commande tres pratique pour formatter un fichier .man
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
# exemple : mf prog.1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
function mf() { tbl $* | nroff -mandoc | less -s }
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
# ,,(), ,,,() for quickly changing $CWD {{{1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
# http://www.shell-fu.org/lister.php?id=769
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
# Go up n levels:
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
# ,, 3
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
function ,, (){
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
    local arg=${1:-1};
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
    local dir=""
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
    while [ $arg -gt 0 ]; do
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
        dir="../$dir"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
        arg=$(($arg - 1));
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
    done
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
    cd $dir >&/dev/null
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
# Go up to a named dir
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    26
# ,,, usr
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
function ,,, (){
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    28
    if [ -z "$1" ]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    29
        return
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    30
    fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
    local maxlvl=16
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
    local dir=$1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
    while [ $maxlvl -gt 0 ]; do
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
        dir="../$dir"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
        maxlvl=$(($maxlvl - 1));
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
        if [ -d "$dir" ]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
            cd $dir >&/dev/null
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
        fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
    done
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
6
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    42
# This function seen in Frank Terbeck config files is an improvement over
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    43
# my previous mkcd alias...
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    44
functions mkcd() {
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    45
    [[ -z $1 ]] && printf 'usage: mkcd NEW-DIRECTORY\n' && return 1
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    46
    [[ -d $1 ]] && printf 'mkcd: Directory %s already exists; cd-ing\n' $1
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    47
    command mkdir -p -- $1
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    48
    builtin cd -- $1
7671e95ab8b0 Change my local mkcd alias into a function
Mikael Berthe <mikael@lilotux.net>
parents: 5
diff changeset
    49
}
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
# genpass()
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
# Generates a tough password of a given length
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
# Borrowed (and slightly modifed) from Seth House github repository.
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
function genpass() {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
    if [ ! "$1" ]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
        echo "Usage: $0 20"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
        echo "For a random, 20-character password."
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
        return 1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
    fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
    dd if=/dev/urandom count=1 2>/dev/null | tr -cd 'A-Za-z0-9' | cut -c-$1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
}