Module: Squared::Common::System

Defined in:
lib/squared/common/system.rb

Instance Method Summary collapse

Instance Method Details

#copy_d(src, dest, glob: ['**/*'], create: false, verbose: true) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/squared/common/system.rb', line 18

def copy_d(src, dest, glob: ['**/*'], create: false, verbose: true)
  raise message(src, dest, hint: 'not found') if !create && !dest.exist?

  subdir = []
  files = 0
  dest.mkpath if create
  as_a(glob).each do |val|
    Dir.glob(src.join(val)) do |path|
      ent = Pathname.new(path)
      next if ent.directory?

      target = dest.join(ent.relative_path_from(src))
      dir = target.dirname
      if !subdir.include?(dir.to_s)
        dir.mkpath
        subdir << dir.to_s
      end
      copy_f ent, target
      files += 1
    end
  end
  puts message(dest.realpath, subdir.size.to_s, files.to_s) if verbose
end

#copy_f(src, dest, overwrite: true, verbose: false) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/squared/common/system.rb', line 42

def copy_f(src, dest, overwrite: true, verbose: false)
  if !overwrite
    path = Pathname.new(dest)
    if path.directory?
      src = as_a(src).reject { |val| path.join(File.basename(val)).exist? }
    elsif path.exist?
      return
    end
  end
  FileUtils.cp(src, dest, verbose: verbose)
end

#shell(*cmd, **kwargs) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/squared/common/system.rb', line 6

def shell(*cmd, **kwargs)
  if /^2\.[0-5]\./.match?(RUBY_VERSION)
    exception = kwargs.delete(:exception)
    ret = system(*cmd, **kwargs)
    raise $?.to_s if !ret && exception

    ret
  else
    system(*cmd, **kwargs)
  end
end