module Gitolite::Utils
Public Instance Methods
gitolite_friendly(permission)
click to toggle source
Converts permission to gitolite friendly permission
# File lib/gitolite/utils.rb, line 61 def gitolite_friendly(permission) if permission.empty? return nil elsif permission.match(/^RWDP?/) return "RW+" elsif permission.match(/^RW/) return "RW+" elsif permission.match(/^R/) return 'R' else return nil end end
is_subset?(array1, array2)
click to toggle source
Checks to see if array2 is subset of array1
# File lib/gitolite/utils.rb, line 53 def is_subset?(array1, array2) result = array1 & array2 (array2.length == result.length) end
raise_gitolite_error(msg, content)
click to toggle source
# File lib/gitolite/utils.rb, line 44 def raise_gitolite_error(msg, content) Rails.logger.debug "Gitolite validation failed with: #{msg}" Rails.logger.debug content raise ::Error::GitoliteValidation.new(msg) end
validate_gitolite_conf_file(content)
click to toggle source
# File lib/gitolite/utils.rb, line 20 def validate_gitolite_conf_file(content) # first line that is not empty first_line = true content.split(/\n|\r/).each_with_index do |line, i| next if line.strip().empty? next if line.strip().match(/^include/) if first_line raise_gitolite_error("Gitolite conf repo header is not valid", content) unless line.match(/repo *[a-zA-Z\-0-9]+/) first_line = !first_line next end # line must start with R/W/RW+ raise_gitolite_error("Gitolite conf repo line must start with R/RW/W(+)", content) unless line.match(/^ *(R|W|RW)\+? *=/m) # must be matched only once raise_gitolite_error("Gitolite conf repo line must containt ONLY one entry of R/RW/W(+)=", content) if line.scan(/(R|W|RW)\+? *=/).size > 1 end return content end