summaryrefslogtreecommitdiff
path: root/modules/blobs/ls.sh
blob: 76b67438514f0c8b64c8c607fdcbca1df168caa4 (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
#!/usr/bin/env bash
name='ls'
ver=0.1
#  Copyright (C) 2010, 2016 Luke Shumaker
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License as
#  published by the Free Software Foundation; either version 2 of the
#  License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program;  see the file COPYING.
#  If not, see <http://www.gnu.org/licenses>.

. "${0%/*}/_stdio.sh"

usage="DIR_ID [FORMAT]"
id="`getvar "$1"`"
form="${2-%p\t%o\t%g\t%n\t%i}"

# %p - permissions
# %o - owner
# %g - group
# %i - blob id
# %n - name
# \t - a tab char

tmp="`mktemp`"
"$RVS" get.f "$tmp" "$id"

while read line; do
	p="`echo "$line" | cut -f1`"
	o="`echo "$line" | cut -f2`"
	g="`echo "$line" | cut -f3`"
	i="`echo "$line" | cut -f4`"
	n="`echo "$line" | cut -f5-`"
	echo "$form" | sed \
		-e 's:\\t:\t:g' \
		-e "s:%p:${p/:/\\:}:g" \
		-e "s:%o:${o/:/\\:}:g" \
		-e "s:%g:${g/:/\\:}:g" \
		-e "s:%i:${i/:/\\:}:g" \
		-e "s:%n:${n/:/\\:}:g"
done < "$tmp"