Sha256: 86366e4f9aa09bc18c9b218198196173afb3e3c257eeb9ee6da46a4d4243a683

Contents?: true

Size: 917 Bytes

Versions: 16

Compression:

Stored size: 917 Bytes

Contents

require 'fileutils'

module JsDuck
  # Cleans up the output dir from previous JSDuck run.  If the output
  # dir contains a .cache directory (and this dir is currently used
  # for caching), it gets preserved, otherwise just an empty output
  # dir is created.
  class OutputDir

    # Initializes empty output directory (with optional .cache inside).
    def self.clean(opts)
      if opts.cache && cache_dir_needs_preserving(opts)
        # Remove all files inside <output-dir> except .cache/
        Dir[opts.output + "/*"].each do |file|
          FileUtils.rm_rf(file) unless file =~ /\/.cache\z/
        end
      else
        # Remove and recreate the entire <output-dir>
        FileUtils.rm_rf(opts.output)
        FileUtils.mkdir(opts.output)
      end
    end

    def self.cache_dir_needs_preserving(opts)
      opts.cache_dir == opts.output + "/.cache" && File.exists?(opts.cache_dir)
    end

  end
end

Version data entries

16 entries across 16 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/output_dir.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.10 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.9 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.8 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.7 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.5 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.4 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.3 lib/jsduck/output_dir.rb
jsduck-troopjs-0.0.1 lib/jsduck/output_dir.rb
jsduck-6.0.0beta lib/jsduck/output_dir.rb