File: update-gemspec

package info (click to toggle)
ruby-cucumber-expressions 8.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 248 kB
  • sloc: ruby: 1,594; sh: 15; makefile: 4
file content (23 lines) | stat: -rwxr-xr-x 798 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env bash
#
# Updates the *.gemspec in the current directory to use the latest releases of gems
#
set -uf -o pipefail
IFS=$'\n'

gemspec=$(find . -type f -maxdepth 1 -name "*.gemspec")
add_dependency_lines=$(cat ${gemspec} | grep "s.add_dependency '[^']*', '")
if [ $? -ne 0 ]; then
  # No add_dependency_lines found - nothing to do
  exit 0
fi

set -e

gems=$(echo "${add_dependency_lines}" | tr -s ' ' | cut -d ' ' -f3 | cut -d"'" -f 2)
while read -r gem; do
  gem_line=$(gem list "${gem}" --remote --all --no-prerelease | grep "${gem}")
  latest_version=$(echo "${gem_line}" | cut -d'(' -f2 | cut -d',' -f1)
  cat "${gemspec}" | sed "s/s.add_dependency '${gem}', .*/s.add_dependency '${gem}', '~> ${latest_version}'/" > ${gemspec}.tmp
  mv ${gemspec}.tmp ${gemspec}
done <<< "${gems}"