@@ -47,6 +47,31 @@ namespace :npm do
4747 end
4848 end
4949
50+ desc "Bump version"
51+ task :bump_version , [ :package , :version ] do |t , args |
52+ require "json"
53+ package = args [ :package ] or raise "package name is required"
54+ version = args [ :version ] or raise "version is required"
55+ pkg_dir = "#{ Dir . pwd } /packages/npm-packages/#{ package } "
56+ pkg_json = "#{ pkg_dir } /package.json"
57+ package = JSON . parse ( File . read ( pkg_json ) )
58+ old_version = package [ "version" ]
59+ pkg_name = package [ "name" ]
60+ package [ "version" ] = version
61+ File . write ( pkg_json , JSON . pretty_generate ( package ) + "\n " )
62+
63+ # Update package-lock.json
64+ Dir . chdir ( pkg_dir ) { sh "npm install" }
65+ # Update README.md and other docs
66+ %x(git grep -l #{ pkg_name } @#{ old_version } ) . split . each do |file |
67+ content = File . read ( file )
68+ next_nightly = Date . today . strftime ( "%Y-%m-%d" )
69+ content . gsub! ( /#{ pkg_name } @#{ old_version } -\d {4}-\d {2}-\d {2}-a/ , "#{ pkg_name } @#{ version } -#{ next_nightly } -a" )
70+ content . gsub! ( /#{ pkg_name } @#{ old_version } / , "#{ pkg_name } @#{ version } " )
71+ File . write ( file , content )
72+ end
73+ end
74+
5075 desc "Build all npm packages"
5176 multitask :all => NPM_PACKAGES . map { |pkg | pkg [ :name ] }
5277end
0 commit comments