@@ -124,16 +124,32 @@ update_owner() {
124124 find " $BKG_INDEX_DIR /$owner " -type f -name ' *.json' ! -name ' .*' -print0 | xargs -0 jq -cs ' [.] | add' > " $BKG_INDEX_DIR /$owner /.json.tmp"
125125 jq -cs ' { ("package"): . }' " $BKG_INDEX_DIR /$owner /.json.tmp" > " $BKG_INDEX_DIR /$owner /.json"
126126 ytoxt " $BKG_INDEX_DIR /$owner /.json"
127- jq -c ' .package[]' " $BKG_INDEX_DIR /$owner /.json" > " $BKG_INDEX_DIR /$owner /.json.tmp"
128- mv -f " $BKG_INDEX_DIR /$owner /.json.tmp" " $BKG_INDEX_DIR /$owner /.json"
127+
128+ # if .package exists, split it into array
129+ if jq -e ' .package' " $BKG_INDEX_DIR /$owner /.json" & > /dev/null; then
130+ jq -c ' .package[]' " $BKG_INDEX_DIR /$owner /.json" > " $BKG_INDEX_DIR /$owner /.json.tmp"
131+ mv -f " $BKG_INDEX_DIR /$owner /.json.tmp" " $BKG_INDEX_DIR /$owner /.json"
132+ fi
129133
130134 echo " Creating $owner repo arrays..."
131- parallel " jq -c --arg repo {} '[.[] | select(.repo == \$ repo)]' \" $BKG_INDEX_DIR /$owner /.json\" > \" $BKG_INDEX_DIR /$owner /{}/.json.tmp\" " <<< " $owner_repos"
132- xargs -I {} bash -c " jq -cs '{ (\" package\" ): . }' \" $BKG_INDEX_DIR /$owner /{}/.json.tmp\" > \" $BKG_INDEX_DIR /$owner /{}/.json\" " <<< " $owner_repos"
133- xargs -I {} bash -c " ytoxt \" $BKG_INDEX_DIR /$owner /{}/.json\" " <<< " $owner_repos"
134- xargs -I {} bash -c " jq -c '.package[]' \" $BKG_INDEX_DIR /$owner /{}/.json\" > \" $BKG_INDEX_DIR /$owner /{}/.json.tmp\" " <<< " $owner_repos"
135- xargs -I {} mv -f " $BKG_INDEX_DIR /$owner /{}/.json.tmp" " $BKG_INDEX_DIR /$owner /{}/.json" <<< " $owner_repos"
136- fi
135+ # shellcheck disable=SC2086,SC2016
136+ parallel '
137+ repo={}
138+ repo_dir="$BKG_INDEX_DIR/' " $owner " ' /$repo"
139+ src="$BKG_INDEX_DIR/' " $owner " ' /.json"
140+ tmp="$repo_dir/.json.tmp"
141+ dst="$repo_dir/.json"
142+
143+ jq -c --arg repo "$repo" ' " '" ' [.[] | select(.repo == $repo)]' " '" ' "$src" >"$tmp" &&
144+ jq -cs ' " '" ' { ("package"): . }' " '" ' "$tmp" >"$dst" &&
145+ ytoxt "$dst"
146+ if jq -e ' " '" ' .package' " '" ' "$dst" &>/dev/null; then
147+ jq -c ' " '" ' .package[]' " '" ' "$dst" >"$tmp"
148+ mv -f "$tmp" "$dst"
149+ fi
150+ ' ::: $owner_repos
151+
152+ fi
137153
138154 sed -i ' /^\(.*\/\)*' " $owner " ' $/d' " $BKG_OWNERS "
139155 echo " Updated $owner "
0 commit comments