lib/pvl/list.sh
author Tero Marttila <terom@paivola.fi>
Mon, 09 Mar 2015 21:17:06 +0200
changeset 736 75938aa0390b
parent 684 fbac5a08c9d3
permissions -rw-r--r--
pvl.hosts.interfaces: remove junos-specifics
627
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     1
### FS utils
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     2
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     3
function _list {
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     4
    local glob="$1"
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     5
    local test="$2"
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     6
    local prefix="$3"
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     7
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     8
    for file in $glob; do
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     9
        [ $test "$file" ] || continue
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    10
        [ -n "$prefix" ] && file="${file#$prefix}"
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    11
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    12
        echo -n "$file "
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    13
    done
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    14
}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    15
628
b10ad946d01d update: refactor into modularized lib/pvl/**.sh layout
Tero Marttila <tero.marttila@aalto.fi>
parents: 627
diff changeset
    16
## List names of all things in dir
627
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    17
function list {
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    18
    _list "$1/*" '-e' ${2:-$1/}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    19
}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    20
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    21
## List names of files in dir:
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    22
#
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    23
#   list_files $dir
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    24
#
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    25
function list_files {
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    26
    _list "$1/*" '-f' ${2:-$1/}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    27
}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    28
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    29
## List names of dirs in dir:
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    30
function list_dirs {
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    31
    _list "$1/*" '-d' ${2:-$1/}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    32
}
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    33
684
fbac5a08c9d3 lib/pvl: pvl/list: fix list_tree to include directory itself
Tero Marttila <tero.marttila@aalto.fi>
parents: 628
diff changeset
    34
## Expand a file or directory path to any files/directorys within that tree
628
b10ad946d01d update: refactor into modularized lib/pvl/**.sh layout
Tero Marttila <tero.marttila@aalto.fi>
parents: 627
diff changeset
    35
function list_tree {
684
fbac5a08c9d3 lib/pvl: pvl/list: fix list_tree to include directory itself
Tero Marttila <tero.marttila@aalto.fi>
parents: 628
diff changeset
    36
    _list "$1 $1/**" '-e' ''
627
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    37
}