Pārlūkot izejas kodu

Add script to autogenerate a "Tags and `Dockerfile` links" section for each repo

Tianon Gravi 11 gadi atpakaļ
vecāks
revīzija
576c535d65
1 mainītis faili ar 60 papildinājumiem un 0 dzēšanām
  1. 60 0
      generate-dockerfile-links-partial.sh

+ 60 - 0
generate-dockerfile-links-partial.sh

@@ -0,0 +1,60 @@
+#!/bin/bash
+set -e
+
+repo="$1"
+if [ -z "$repo" ]; then
+	echo >&2 "usage: $0 repo"
+	echo >&2 "   ie: $0 hylang"
+	exit 1
+fi
+
+IFS=$'\n'
+lines=( $(curl -sSL 'https://raw.githubusercontent.com/docker-library/official-images/master/library/'"$repo" | grep -vE '^$|^#') )
+unset IFS
+
+repoDirs=()
+declare -A repoDirTags=()
+
+for line in "${lines[@]}"; do
+	tag="${line%%: *}"
+	repoDir="${line#*: }"
+	if [ -z "${repoDirTags[$repoDir]}" ]; then
+		repoDirTags["$repoDir"]="$tag"
+		repoDirs+=( "$repoDir" )
+	else
+		repoDirTags["$repoDir"]+=', '"$tag"
+	fi
+done
+
+echo '# Tags and `Dockerfile` links'
+echo
+
+for repoDir in "${repoDirs[@]}"; do
+	if [[ "$repoDir" != *github.com* ]]; then
+		# skip non-github.com for now
+		continue
+	fi
+	
+	# split out some data
+	gitUrl="${repoDir%%@*}"
+	commitDir="${repoDir#*@}"
+	commit="${commitDir%% *}"
+	dir="${commitDir#* }"
+	if [ "$dir" = "$commitDir" ]; then
+		dir=''
+	fi
+	
+	# sanitize some data
+	gitUrl="${gitUrl#git://}"
+	gitUrl="${gitUrl%/}"
+	gitUrl="${gitUrl%.git}"
+	dir="${dir#/}"
+	dir="${dir%/}"
+	[ -z "$dir" ] || dir="$dir/"
+	
+	url="https://$gitUrl/blob/$commit/${dir}Dockerfile"
+	
+	echo '- ['"${repoDirTags["$repoDir"]}"']('"$url"')'
+done
+
+echo