| # attempt to determine where 'HOME' is |
| unless ENV['HOME'] |
| ENV['HOME'] = $1 if ENV['SCRIPT_FILENAME'] =~ /(.*?)\/public_html\// |
| ENV['HOME'] = $1 if ENV['SCRIPT_FILENAME'] =~ /(.*?)\/Sites\// |
| end |
| |
| # look for local_paths.yml or ~/.secassist (in that order) |
| config = 'local_paths.yml' |
| if not File.exist?(config) and ENV['HOME'] |
| config = File.expand_path('~/.secassist') |
| end |
| |
| # set constants based on the configuration file |
| require 'yaml' |
| YAML.load(open(config).read).each do |key, value| |
| Object.const_set key.upcase, |
| File.realpath(File.expand_path(value).untaint).untaint |
| end |
| |
| # pending file |
| PENDING_YML = File.join(RECEIVED, 'pending.yml') |
| COMPLETED_YML = File.join(RECEIVED, 'completed.yml') |
| |
| # svn >= 1.5 requires a trailing '@' if the file name contains an '@' |
| # http://stackoverflow.com/questions/1985203/why-subversion-skips-files-which-contain-the-symbol |
| def svn_at name |
| svn_version = `svn --version --quiet`.chomp.split('.').map {|s| s.to_i} |
| if (svn_version <=> [1,6,4]) < 1 |
| '' |
| elsif name.include? '@' |
| '@' |
| else |
| '' |
| end |
| end |