-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-json.sh
More file actions
28 lines (21 loc) · 933 Bytes
/
Copy pathgenerate-json.sh
File metadata and controls
28 lines (21 loc) · 933 Bytes
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
#!/bin/bash
[ ! -d ./lists ] && { echo "Cannot generate lists.json: lists folder not found."; exit 1; }
folderjson=()
for folder in ./lists/*/; do
folder=${folder%*/}
foldername=${folder##*/}
filejson=()
for file in ${folder}/*; do
filename=$(echo ${file##*/} | cut -d. -f1)
fileurl=$(head -5 ${file} | sed -n 's/^.*File: //p')
entries=$(head -5 ${file} | sed -n 's/^.*Entries: //p')
filesize=$(stat -c '%s' ${file} | numfmt --to iec)
filedate=$(head -5 ${file} | sed -n 's/^.*Updated: //p')
filehash=$(sha256sum ${file} | head -c 64)
filejson+=("\"${filename}\":{\"file\":\"${fileurl}\",\"entries\":\"${entries}\",\"size\":\"${filesize}\",\"updated\":\"${filedate}\",\"hash\":\"${filehash}\"}")
done
folderjson+=("\"${foldername}\":{$(IFS=,; echo "${filejson[*]}")}")
done
printf "{$(IFS=,; echo "${folderjson[*]}")}" > ./lists/lists.json
echo "Finished generating lists.json."
exit 0