#! /bin/sh ruby_spec="ruby/ruby.spec" if [ ! -d ./SPECS/ ]; then echo "This script has to be executed from git photon working directory" fi tarball_url=`curl -s https://www.ruby-lang.org/en/downloads/ | grep -E "The current stable version is"` tarball="https://cache.ruby-lang.org/pub/ruby" version=`echo $tarball_url | sed -e 's/The current stable version is //' | cut -c1-5` #Set the ENV accordingly to export the path of rvm installed export PATH=$PATH:/home/srinidhir/.rvm/rubies/ruby-2.5.1/bin gem_bin=`which gem` if [ -z $gem_bin ]; then echo "Gem not found" echo "Please install ruby and gem using rvm" echo "Please follow this link to install https://www.digitalocean.com/community/tutorials/how-to-install-ruby-and-set-up-a-local-programming-environment-on-ubuntu-16-04" else echo "gem is installed" fi echo latest ruby version: $version major_ver=`echo $version | cut -c1-3` tar_url="$tarball/$major_ver/ruby-$version.tar.bz2" ruby_tar="ruby-$version.tar.bz2" old_ruby_ver=`grep -m 1 -w "Version:" ./SPECS/$RUBY_SPEC | sed -e 's/^\(.*\)Version://' | tr -s " "` if [ "$version" != "$old_ruby_ver" ]; then #test -f stage/SOURCES/ruby-$version* && echo up to date && exit 0 $(cd stage/SOURCES && wget $tar_url) sha512=`sha512sum stage/SOURCES/$ruby_tar | awk '{print $1}'` echo $sha512 changelog_entry=$(echo "`date +"%a %b %d %Y"` `git config user.name` <`git config user.email`> $version-1") sed -i '/^Version:/ s/2.[0-9]*.[0-9]*/'$version'/' ./SPECS/ruby/ruby.spec sed -i '/^Release:/ s/[0-9]*%/1%/' ./SPECS/ruby/ruby.spec sed -i '/^%define sha512\s*ruby/ s/=[0-9a-f]*$/='$sha512'/' ./SPECS/ruby/ruby.spec sed -i '/^%changelog/a* '"$changelog_entry"'\n- Update to version '"$version"'' ./SPECS/ruby/ruby.spec else echo "Ruby is up to date" fi rubygem_download_url="https://rubygems.org/downloads" gem_specs_dirs=`find ./SPECS/ -maxdepth 1 -type d -name rubygem-* -exec basename {} \;` gem_spec_dirs=`find ./SPECS/ -maxdepth 1 -type d -name rubygem-* -exec basename {} \;` for dir in $gem_spec_dirs; do file=`find ./SPECS/$dir/*.spec` #Extract name, version and url of the gem. #Name is very important gem_name=`grep -m 1 -w "gem_name" $file | sed -e 's/^\(.*\)gem_name //'` old_ver=`grep -m 1 -w "Version:" $file | sed -e 's/^\(.*\)Version://' | tr -s " "` echo "Old version is $old_ver" new_ver=`gem search -e $gem_name -r -d | grep -m 1 -w "$gem_name" | sed -e "s/$gem_name (//; s/.$//" | cut -d , -f1` echo "Got $gem_name-$new_ver" ##gem fetch $gem_name-$new_ver gem_exists="./stage/SOURCES/$gem_name-$new_ver*" if [ $new_ver != $old_ver ]; then echo "updating $gem_name-$new_ver" $(cd stage/SOURCES && wget $rubygem_download_url/$gem_name-$new_ver.gem) gem_sha512=`sha512sum stage/SOURCES/$gem_name-$new_ver.gem | awk '{print $1}'` echo "$gem_sha512" gem_chng_log=$(echo "`date +"%a %b %d %Y"` `git config user.name` <`git config user.email`> $new_ver-1") sed -i '/^Version:/ s/[0-9].[0-9]*.[0-9]*..$/'$new_ver'/' $file sed -i '/^Release:/ s/[0-9]*%/1%/' $file sed -i '/^%define sha512\s*'"$gem_name"'/ s/=[0-9a-f]*$/='$gem_sha512'/' $file sed -i '/^%changelog/a* '"$gem_chng_log"'\n- Update to version '"$new_ver"'' $file else echo "Gem $gem_name is up to date $new_ver" fi done