Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: tools/cc-frame-viewer/third_party/gl-matrix/tasks/support/gl-matrix/release_helper.rb

Issue 12251005: [cc-frame-viewer] Add gl-matrix to third_party [redux] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/cc-frame-viewer/third_party/gl-matrix/tasks/support/gl-matrix/release_helper.rb
diff --git a/tools/cc-frame-viewer/third_party/gl-matrix/tasks/support/gl-matrix/release_helper.rb b/tools/cc-frame-viewer/third_party/gl-matrix/tasks/support/gl-matrix/release_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4aca02baf881c8d92ba442ed72f2a8e78951ee92
--- /dev/null
+++ b/tools/cc-frame-viewer/third_party/gl-matrix/tasks/support/gl-matrix/release_helper.rb
@@ -0,0 +1,104 @@
+# Copyright (c) 2013 Brandon Jones, Colin MacKenzie IV
+#
+# This software is provided 'as-is', without any express or implied
+# warranty. In no event will the authors be held liable for any damages
+# arising from the use of this software.
+#
+# Permission is granted to anyone to use this software for any purpose,
+# including commercial applications, and to alter it and redistribute it
+# freely, subject to the following restrictions:
+#
+# 1. The origin of this software must not be misrepresented; you must not
+# claim that you wrote the original software. If you use this software
+# in a product, an acknowledgment in the product documentation would be
+# appreciated but is not required.
+#
+# 2. Altered source versions must be plainly marked as such, and must not
+# be misrepresented as being the original software.
+#
+# 3. This notice may not be removed or altered from any source distribution.
+
+# Pretty much everything here was ripped from Bundler.
+# https://github.com/carlhuda/bundler/blob/master/lib/bundler/gem_helper.rb
+module GLMatrix::ReleaseHelper
+ module_function
+
+ def release
+ guard_clean
+ guard_already_tagged
+ tag_version {
+ yield if block_given?
+ git_push
+ }
+ end
+
+ def base
+ GLMatrix.base_path.to_s
+ end
+
+ def git_push
+ perform_git_push
+ perform_git_push ' --tags'
+ Bundler.ui.confirm "Pushed git commits and tags"
+ end
+
+ def perform_git_push(options = '')
+ cmd = "git push #{options}"
+ out, code = sh_with_code(cmd)
+ raise "Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n" unless code == 0
+ end
+
+ def guard_already_tagged
+ if sh('git tag').split(/\n/).include?(version_tag)
+ raise("This tag has already been committed to the repo.")
+ end
+ end
+
+ def guard_clean
+ clean? or raise("There are files that need to be committed first.")
+ end
+
+ def clean?
+ sh_with_code("git diff --exit-code")[1] == 0
+ end
+
+ def tag_version
+ sh "git tag -a -m \"Version #{version}\" #{version_tag}"
+ Bundler.ui.confirm "Tagged #{version_tag}"
+ yield if block_given?
+ rescue
+ Bundler.ui.error "Untagged #{version_tag} due to error"
+ sh_with_code "git tag -d #{version_tag}"
+ raise
+ end
+
+ def version
+ GLMatrix::VERSION
+ end
+
+ def version_tag
+ "v#{version}"
+ end
+
+ def name
+ "gl-matrix"
+ end
+
+ def sh(cmd, &block)
+ out, code = sh_with_code(cmd, &block)
+ code == 0 ? out : raise(out.empty? ? "Running `#{cmd}' failed. Run this command directly for more detailed output." : out)
+ end
+
+ def sh_with_code(cmd, &block)
+ cmd << " 2>&1"
+ outbuf = ''
+ Bundler.ui.debug(cmd)
+ Dir.chdir(base) {
+ outbuf = `#{cmd}`
+ if $? == 0
+ block.call(outbuf) if block
+ end
+ }
+ [outbuf, $?]
+ end
+end

Powered by Google App Engine
This is Rietveld 408576698