discourse/lib/theme_store/directory_importer.rb
David Taylor 93c96cf6fa
DEV: Filter files included by theme DirectoryImporter (#23842)
To match discourse_theme CLI behavior, we should skip hidden files/directories (e.g. `.git`), and two regular directories: `node_modules/` and `src/`.

Without these excludes, it's very easy for a theme to hit the file count limit. e.g. when trying this with discourse-kanban-board, I got:

> The number of files (20366) in the theme has exceeded the maximum allowed number of files (1024)
2023-10-09 12:03:02 +01:00

18 lines
412 B
Ruby

# frozen_string_literal: true
module ThemeStore
class DirectoryImporter < BaseImporter
def initialize(theme_dir)
@theme_dir = theme_dir
end
def import!
FileUtils.mkdir_p(temp_folder)
Dir.glob("*", base: @theme_dir) do |entry|
next if %w[node_modules src spec].include?(entry)
FileUtils.cp_r(File.join(@theme_dir, entry), temp_folder)
end
end
end
end