[ssfr] Re: [SSFR] Partage de fonctions ...

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


salut Edi,

On Thu, Apr 03, 2008 at 12:22:15PM +0100, Edi Stojicevic wrote:
> newf() {

Je vois ce que ca fait mais pas a quoi ca sert

> lowercase() {

pourquoi tu fais une fonction pour ca ? pourquoi ne pas utiliser (L)
quand tu en a besoin?

> space2underline()
> {
>         for a in ./**/*\ *(Dod); do mv $a ${a:h}/${a:t:gs/ /_}; done
> }

tu connais la syntaxe alternative ?
space2underline() {
	for f (**/*\ *(Dod)) mv $a ${a:h}/${a:t:gs/ /_}
}

J'aurais tendance a chercher une solution avec zmv mais je ne sais pas
comment il gere le (Dod).

> function kernel()
> {
> printf 'GET /kdist/finger_banner HTTP1.0\n\n' | nc www.kernel.org 80 |
> grep latest
> }

sympa, l'idée d'utiliser nc comme un client http light! du coup, j'ai
regardé du coté du module tcp de zsh et viens de pondre ca:

http_req () {
    # usage:
    # HTTP_VERSION=1.1 http_req get /
    # http_req head /index.html

    local eol req
    eol="\n"
    # real http eol (os independant) eol="\x0d\x0a" only server side ?

    # http request must be uppercase
    req=${(U)1}
    shift
    # always send HTTP version (1.0 by default)
    print -n -- "$req $* HTTP/${HTTP_VERSION:-1.0}$eol$eol" 

}

http_simple () {

    # usage:
    # http_simple hostname[:port] http_req_params
    # default port value is 80
    
    local host port fd

    # parse the first arg
    IFS=: read host port <<< $1
    shift

    # try to silently load net/tcp
    zmodload zsh/net/tcp 2>/dev/null

    # open connection
    ztcp $host ${port:-80}
    fd=$REPLY 

    # send http request to connection
    http_req "$@" >&$fd

    # read the result
    cat <&$fd
}

available_kernel_versions () {
    http_simple www.kernel.org:80 get /kdist/finger_banner |
	sed -n '
	    s/^The latest //
	    T
	    s/\(.*\)is:\s\+\(.*\)/\2 \1/
	    p
	'
}

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/