Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions bin/ScriptCommands.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def has_any_build_flag(*flag)
def set_database_name(database_name)
database_name = database_name.to_s
database_name = database_name.gsub('#', Utility.get_svn_head_revision) if database_name.include?('#') && $vcs == :svn
database_name = database_name.gsub('#', Utility.get_git_hash) if database_name.include?('#') && $vcs == :git
database_name = database_name.gsub('#', Utility.get_git_hash($product_sql_path)) if database_name.include?('#') && $vcs == :git
$database_name = database_name
$logger.writeln "Database name = #{$database_name}"
end
Expand All @@ -41,7 +41,7 @@ def default_database_name(database_name)
def set_version(version)
version = version.to_s
version = version.gsub('#', Utility.get_svn_head_revision) if version.include?('#') && $vcs == :svn
version = version.gsub('#', Utility.get_git_hash) if version.include?('#') && $vcs == :git
version = version.gsub('#', Utility.get_git_hash($product_sql_path)) if version.include?('#') && $vcs == :git
$version = version
$logger.writeln "Version = #{$version}"
set_database_name($database_name_prefix + '-' + $product.to_s + '-' + $version) if $database_name.nil?
Expand Down Expand Up @@ -120,6 +120,11 @@ def create_database(*params)
end
end

def check_uncommited_code(repo)
$logger.writeln "Checking for uncommitted code in repo #{repo}..."
Utility.get_git_status(repo)
end

def clear_log
$logger.clear
end
Expand Down Expand Up @@ -439,7 +444,7 @@ def add_build_constants(schema = 'system')
add_constant 'CURRENT_DATABASE_NAME', get_database_name(), schema
add_constant 'CURRENT_DATABASE_VERSION', get_version(), schema unless $version.nil?
add_constant 'CURRENT_DATABASE_PRODUCT', $product.to_s, schema unless $product.nil?
add_constant 'CURRENT_GIT_REVISION', Utility.get_git_hash, schema if !$vcs.nil? && $vcs == :git
add_constant 'CURRENT_GIT_REVISION', Utility.get_git_hash($product_sql_path), schema if !$vcs.nil? && $vcs == :git
add_constant 'CURRENT_SVN_REVISION', Utility.get_svn_head_revision, schema if !$vcs.nil? && $vcs == :svn
add_constant 'CURRENT_DATABASE_BUILD_DATE', Time.now.strftime('%d-%m-%Y %H:%M:%S'), schema
add_constant 'CURRENT_DATABASE_BUILD_USER', Etc.getlogin, schema rescue nil
Expand Down
26 changes: 24 additions & 2 deletions bin/Utility.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,34 @@ def self.get_last_cmd_output(lines)
return lines.last(lastnum).join("")
end

def self.get_git_hash
def self.get_git_status(gitpath)
raise 'Git bin path not set ($git_bin_path)' if $git_bin_path.nil?
raise "Git bin path not found ($git_bin_path = \"#{$git_bin_path}\")" unless ((File.exist?($git_bin_path) && File.directory?($git_bin_path)) || ($git_bin_path.empty?))

curr_dir = Dir.pwd
Dir.chdir($product_sql_path)
Dir.chdir(gitpath)
cmd = "\"#{$git_bin_path}git\" status -s"
socket = IO.popen(cmd)
begin
line = socket.gets
if line != nil
raise "Uncommitted code detected!: #{line}"
return line
else return
end
ensure
socket.close
Dir.chdir(curr_dir)
end
raise "Could not read GIT status with command: #{cmd}"
end

def self.get_git_hash(gitpath)
raise 'Git bin path not set ($git_bin_path)' if $git_bin_path.nil?
raise "Git bin path not found ($git_bin_path = \"#{$git_bin_path}\")" unless ((File.exist?($git_bin_path) && File.directory?($git_bin_path)) || ($git_bin_path.empty?))

curr_dir = Dir.pwd
Dir.chdir(gitpath)
cmd = "\"#{$git_bin_path}git\" log -1 --pretty=format:%h"
socket = IO.popen(cmd)
begin
Expand Down