blob: 8637bcd575a5cdacc8ce9ebaced73849cef1e4e6 (
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
51
52
53
54
|
#!/bin/sh
INPUT_DIR=blog
OUTPUT_DIR=dist
usage () {
printf "%s\n" "Usage: shblg [-i input_dir] [-o output_dir]"
exit 1
}
while getopts ":o:i:h" opt; do
case "$opt" in
o)
OUTPUT_DIR=$OPTARG/
mkdir -p $OUTPUT_DIR
OUTPUT_DIR=$(realpath $OUTPUT_DIR)
;;
i)
INPUT_DIR=$(realpath $OPTARG)
;;
h)
usage
;;
esac
done
# process a file to
process () {
path="${1#$INPUT_DIR}"
dirpath="${1%${1##*/}}"
out_file="${OUTPUT_DIR}${path}"
printf "%s ...\n" "$path"
[ -d "$1" ] && {
mkdir -p "$out_file"
for f in "$1"/*; do
process "$f"
done
return 0
} || [ -x "$1" ] && {
# execute the file
cd $dirpath
"$1" > "${out_file}"
cd -
return 0
} || {
# just copy the file as is
cp "$1" "$out_file"
return 0
}
}
process "$INPUT_DIR"
|