瀏覽代碼

Start refactoring for some semblance of multiarch support

Tianon Gravi 8 年之前
父節點
當前提交
a8da955681
共有 1 個文件被更改,包括 47 次插入41 次删除
  1. 47 41
      update.sh

+ 47 - 41
update.sh

@@ -1,42 +1,46 @@
 #!/bin/bash
-set -eo pipefail
+set -Eeuo pipefail
 
 cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
 helperDir='.template-helpers'
 
-repos=( "$@" )
-if [ ${#repos[@]} -eq 0 ]; then
-	repos=( */ )
+images=( "$@" )
+if [ ${#images[@]} -eq 0 ]; then
+	images=( */ )
 fi
-repos=( "${repos[@]%/}" )
+images=( "${images[@]%/}" )
 
 replace_field() {
-	repo="$1"
+	targetFile="$1"
 	field="$2"
 	content="$3"
 	extraSed="${4:-}"
 	sed_escaped_value="$(echo "$content" | sed 's/[\/&]/\\&/g')"
 	sed_escaped_value="${sed_escaped_value//$'\n'/\\n}"
-	sed -ri "s/${extraSed}%%${field}%%${extraSed}/$sed_escaped_value/g" "$repo/README.md"
+	sed -ri -e "s/${extraSed}%%${field}%%${extraSed}/$sed_escaped_value/g" "$targetFile"
 }
 
-for repo in "${repos[@]}"; do
+for image in "${images[@]}"; do
+	repo="${image##*/}"
+	namespace="${image%$repo}"
+	namespace="${namespace%/}"
+
 	if [ -x "$repo/update.sh" ]; then
 		( set -x; "$repo/update.sh" )
 	fi
-	
+
 	if [ -e "$repo/content.md" ]; then
 		githubRepo="$(cat "$repo/github-repo")"
 		maintainer="$(cat "$repo/maintainer.md")"
-		
+
 		issues="$(cat "$repo/issues.md" 2>/dev/null || cat "$helperDir/issues.md")"
 		getHelp="$(cat "$repo/get-help.md" 2>/dev/null || cat "$helperDir/get-help.md")"
-		
+
 		license="$(cat "$repo/license.md" 2>/dev/null || true)"
 		if [ "$license" ]; then
 			license=$'\n\n''# License'$'\n\n'"$license"
 		fi
-		
+
 		logo=
 		logoFile=
 		for f in png svg; do
@@ -54,67 +58,69 @@ for repo in "${repos[@]}"; do
 				logo="![logo](https://raw.githubusercontent.com/docker-library/docs/$logoCommit/$logoFile)"
 			fi
 		fi
-		
+
 		compose=
 		composeYml=
 		if [ -f "$repo/docker-compose.yml" ]; then
 			compose="$(cat "$repo/compose.md" 2>/dev/null || cat "$helperDir/compose.md")"
 			composeYml=$'```yaml\n'"$(cat "$repo/docker-compose.yml")"$'\n```'
 		fi
-		
+
 		deprecated=
 		if [ -f "$repo/deprecated.md" ]; then
 			deprecated=$'# **DEPRECATED**\n\n'
 			deprecated+="$(cat "$repo/deprecated.md")"
 			deprecated+=$'\n\n'
 		fi
-		
+
+		targetFile="$repo/README.md"
+
 		{
 			cat "$helperDir/autogenerated-warning.md"
 			echo
 			echo -n "$deprecated"
 			cat "$helperDir/template.md"
-		} > "$repo/README.md"
-		
+		} > "$targetFile"
+
 		echo '  TAGS => generate-dockerfile-links-partial.sh "'"$repo"'"'
 		partial="$("$helperDir/generate-dockerfile-links-partial.sh" "$repo")"
 		[ "$partial" ]
-		replace_field "$repo" 'TAGS' "$partial"
-		
+		replace_field "$targetFile" 'TAGS' "$partial"
+
 		echo '  CONTENT => '"$repo"'/content.md'
-		replace_field "$repo" 'CONTENT' "$(cat "$repo/content.md")"
-		
+		replace_field "$targetFile" 'CONTENT' "$(cat "$repo/content.md")"
+
 		echo '  VARIANT => variant.sh'
-		replace_field "$repo" 'VARIANT' "$("$helperDir/variant.sh" "$repo")"
-		
+		replace_field "$targetFile" 'VARIANT' "$("$helperDir/variant.sh" "$repo")"
+
 		# has to be after CONTENT because it's contained in content.md
 		echo "  LOGO => $logo"
-		replace_field "$repo" 'LOGO' "$logo" '\s*'
-		
+		replace_field "$targetFile" 'LOGO' "$logo" '\s*'
+
 		echo '  COMPOSE => '"$repo"'/compose.md'
-		replace_field "$repo" 'COMPOSE' "$compose"
-		
+		replace_field "$targetFile" 'COMPOSE' "$compose"
+
 		echo '  COMPOSE-YML => '"$repo"'/docker-compose.yml'
-		replace_field "$repo" 'COMPOSE-YML' "$composeYml"
-		
+		replace_field "$targetFile" 'COMPOSE-YML' "$composeYml"
+
 		echo '  LICENSE => '"$repo"'/license.md'
-		replace_field "$repo" 'LICENSE' "$license"
-		
+		replace_field "$targetFile" 'LICENSE' "$license"
+
 		echo '  ISSUES => "'"$issues"'"'
-		replace_field "$repo" 'ISSUES' "$issues"
-		
+		replace_field "$targetFile" 'ISSUES' "$issues"
+
 		echo '  GET-HELP => "'"$getHelp"'"'
-		replace_field "$repo" 'GET-HELP' "$getHelp"
-		
+		replace_field "$targetFile" 'GET-HELP' "$getHelp"
+
 		echo '  MAINTAINER => "'"$maintainer"'"'
-		replace_field "$repo" 'MAINTAINER' "$maintainer"
-		
+		replace_field "$targetFile" 'MAINTAINER' "$maintainer"
+
 		echo '  REPO => "'"$repo"'"'
-		replace_field "$repo" 'REPO' "$repo"
-		
+		replace_field "$targetFile" 'REPO' "$repo"
+
 		echo '  GITHUB-REPO => "'"$githubRepo"'"'
-		replace_field "$repo" 'GITHUB-REPO' "$githubRepo"
-		
+		replace_field "$targetFile" 'GITHUB-REPO' "$githubRepo"
+
 		echo
 	else
 		echo >&2 "skipping $repo: missing repo/content.md"