def install_seeds
      seed_dir = File.join self.root_path, "Seeds"
      if not Dir.exist? seed_dir
        Dir.mkdir seed_dir
      end

      self.seeds.sort.each do |name, seed|
        dirname = File.join(self.root_path, "Seeds", seed.name)
        if seed.instance_of? Seeds::Seed::LocalSeed
          self.install_local_seed(seed, dirname)
        else
          self.install_seed(seed, dirname)
        end

        next if not seed.files

        # add seed files to `source_files`
        self.source_files[name] = []
        seed.files.each do |file|
          paths = Dir.glob(File.join(dirname, file))

          # exclude files
          seed.exclude_files.each do |exclude_file|
            exclude_paths = Dir.glob(File.join(dirname, exclude_file))
            exclude_paths.each do |exclude_path|
              paths.delete(exclude_path)
            end
          end

          paths.each do |path|
            path = self.path_with_prefix(seed.name, path)
            self.source_files[name].push(path)
          end
        end
      end
    end
def install_seeds
      seed_dir = File.join self.root_path, "Seeds"
      if not Dir.exist? seed_dir
        Dir.mkdir seed_dir
      end

      self.seeds.sort.each do |name, seed|
        dirname = File.join(self.root_path, "Seeds", seed.name)
        if seed.instance_of? Seeds::Seed::LocalSeed
          self.install_local_seed(seed, dirname)
        else
          self.install_seed(seed, dirname)
        end

        next if not seed.files

        # add seed files to `source_files`
        self.source_files[name] = []
        seed.files.each do |file|
          paths = Dir.glob(File.join(dirname, file))

          # exclude files
          seed.exclude_files.each do |exclude_file|
            exclude_paths = Dir.glob(File.join(dirname, exclude_file))
            exclude_paths.each do |exclude_path|
              paths.delete(exclude_path)
            end
          end

          paths.each do |path|
            path = self.path_with_prefix(seed.name, path)
            self.source_files[name].push(path)
          end
        end
      end
    end
Installs new seeds or updates existing seeds.

 @!visibility private