build/auto_version.tcl (63 lines of code) (raw):

#! /usr/bin/env tclsh # Quick Tcl script to auto commit bump in the version proc find_base_dir {} { global argv0 return [file dirname $argv0] } proc wdt_version_update {} { set curDir [pwd] set basedir [find_base_dir] cd [file join $basedir ".."] # that script expects to be run from wdt/ source build/version_update.tcl cd $curDir } proc sg_version_update {} { set curDir [pwd] set basedir [find_base_dir] cd [file join $basedir ".." ".." "stargate"] # that script expects to be run from stargate/ source version_update.tcl cd $curDir } proc auto_commit {} { set commit_msg {wdt/stargate version bump Summary: wdt/stargate version bump auto commit Test Plan: n/a Reviewers: svcscm Reviewed by: svcscm } puts [exec hg commit -u svcscm@fb.com -m $commit_msg] puts "*** Committed" } proc auto_land {} { puts [exec hg push --to master -r . --pushvars "BYPASS_REVIEW=true"] puts "*** Landed, going back to master:" puts [exec hg update master] } proc check_clean {} { catch {exec hg status -m -a -r -d} status set status [string trim $status] if {[string length $status]} { puts "*** Error, aborting: not clean repo state: $status" exit 1 } } proc switch_to_and_update_master {} { puts "*** Switching to and updating master:" puts [exec hg pull 2>@1] puts [exec hg update master] } # Put it all together: switch_to_and_update_master check_clean wdt_version_update sg_version_update puts "*** WARNING - this will auto land:" puts [exec hg status] puts "Interrupt now if that's not what you want..." after 2000 auto_commit auto_land