Skip to content

Instantly share code, notes, and snippets.

@LadyNamedLaura
Created May 13, 2019 08:09
Show Gist options
  • Save LadyNamedLaura/bcb4859f2167a9a82cb897833658c3a3 to your computer and use it in GitHub Desktop.
Save LadyNamedLaura/bcb4859f2167a9a82cb897833658c3a3 to your computer and use it in GitHub Desktop.
convert forge modules into git modules
cat Puppetfile | tr '\n' '|' | sed 's_,|_, _g' | tr '|' '\n' | sed -n
's_^\s*mod\s\+'"'"'\(\S*\)'"'"'\s*,\s*'"'"'\(\S*\)'"'"'\s*$_\1\t\2_p' |
sed 's_/_-_' | while read modname version
do
sourceurl="$(curl -s
"https://forgeapi.puppet.com/v3/modules/${modname}" | jq -r
'.current_release.metadata.source')"
tag="$(git ls-remote --tags "${sourceurl}" | cut -f2 | grep
"^refs/tags/v\?${version}\$")"
[ -n "${tag}" ] && echo -e "\nmod '${modname}',\n :git =>
'${sourceurl}',\n :ref => '$(basename "${tag}")'"
[ -z "${tag}" ] && echo -e "\nmod '${modname}', '${version}'"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment