Module: Librarian::Puppet::Util

Instance Method Summary collapse

Instance Method Details

#clean_uri(uri) ⇒ Object

Remove user and password from a URI object



56
57
58
59
60
61
# File 'lib/librarian/puppet/util.rb', line 56

def clean_uri(uri)
  new_uri = uri.clone
  new_uri.user = nil
  new_uri.password = nil
  new_uri
end

#cp_r(src, dest) ⇒ Object

workaround Issue #173 FileUtils.cp_r will fail if there is a symlink that points to a missing file or when the symlink is copied before the target file when preserve is true see also tickets.opscode.com/browse/CHEF-833

If the rsync configuration parameter is set, use rsync instead of FileUtils



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/librarian/puppet/util.rb', line 27

def cp_r(src, dest)
  if rsync?
    if Gem.win_platform?
      src_clean = "#{src}".gsub(/^([a-z])\:/i,'/cygdrive/\1')
      dest_clean = "#{dest}".gsub(/^([a-z])\:/i,'/cygdrive/\1')
    else
      src_clean = src
      dest_clean = dest
    end
    debug { "Copying #{src_clean}/ to #{dest_clean}/ with rsync -avz --delete" }
    result = Rsync.run(File.join(src_clean, "/"), File.join(dest_clean, "/"), ['-avz', '--delete'])
    if result.success?
      debug { "Rsync from #{src_clean}/ to #{dest_clean}/ successful" }
    else
      msg = "Failed to rsync from #{src_clean}/ to #{dest_clean}/: " + result.error
      raise Error, msg
    end
  else
    begin
      FileUtils.cp_r(src, dest, :preserve => true)
    rescue Errno::ENOENT, Errno::EACCES
      debug { "Failed to copy from #{src} to #{dest} preserving file types, trying again without preserving them" }
      FileUtils.rm_rf(dest)
      FileUtils.cp_r(src, dest)
    end
  end
end

#debug(*args, &block) ⇒ Object



8
9
10
# File 'lib/librarian/puppet/util.rb', line 8

def debug(*args, &block)
  environment.logger.debug(*args, &block)
end

#info(*args, &block) ⇒ Object



11
12
13
# File 'lib/librarian/puppet/util.rb', line 11

def info(*args, &block)
  environment.logger.info(*args, &block)
end

#module_name(name) ⇒ Object Also known as: organization_name

get the module name from organization-module



69
70
71
72
# File 'lib/librarian/puppet/util.rb', line 69

def module_name(name)
  # module name can't have dashes, so let's assume it is everything after the last dash
  name.rpartition('-').last
end

#normalize_name(name) ⇒ Object

normalize module name to use organization-module instead of organization/module



64
65
66
# File 'lib/librarian/puppet/util.rb', line 64

def normalize_name(name)
  name.sub('/','-')
end

#rsync?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/librarian/puppet/util.rb', line 18

def rsync?
    environment.config_db.local['rsync'] == 'true'
end

#warn(*args, &block) ⇒ Object



14
15
16
# File 'lib/librarian/puppet/util.rb', line 14

def warn(*args, &block)
  environment.logger.warn(*args, &block)
end