Class: Organisir::Commands::SymlinkFiles

Inherits:
Object
  • Object
show all
Defined in:
lib/organisir/commands/symlink_files.rb

Instance Method Summary collapse

Constructor Details

#initialize(source_dir, pwd, commit) ⇒ SymlinkFiles

Returns a new instance of SymlinkFiles.



6
7
8
9
# File 'lib/organisir/commands/symlink_files.rb', line 6

def initialize(source_dir, pwd, commit)
  @abs_source_dir = File.join(pwd, source_dir)
  @verbose = !commit
end

Instance Method Details



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/organisir/commands/symlink_files.rb', line 11

def link
  sub_dirs = Util.get_sub_dirs(@abs_source_dir)
  files = Dir.glob(File.join(@abs_source_dir, "*", "*.*"))
             .reject { |f| File.directory?(f) || File.symlink?(f) || File.zero?(f) }
  print("Scanned #{files.length} files inside #{sub_dirs.length} directories in #{@abs_dest_dir}\n")

  rule = SymlinkRule.new(sub_dirs)
  files.each do |f|
    match_dirs = rule.match(f)
    next if match_dirs.nil? || match_dirs.empty?

    process(f, match_dirs)
  end
end