diff options
| author | Georg Gadinger <nilsding@nilsding.org> | 2021-04-16 22:28:16 +0200 |
|---|---|---|
| committer | Georg Gadinger <nilsding@nilsding.org> | 2021-04-16 22:28:16 +0200 |
| commit | af2479e3a82dbe8c7634abd57ca8900f3027bcec (patch) | |
| tree | 5fa3b895cc9c8bb13c24f24d2ac9fc5ebbfb522e | |
| parent | 3f1b7213af69fa8d8426294de512686d7b8e9c38 (diff) | |
| download | rockbox-theme-ipawbmini-main.tar.gz rockbox-theme-ipawbmini-main.tar.bz2 rockbox-theme-ipawbmini-main.zip | |
| -rwxr-xr-x | gen_theme.rb | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/gen_theme.rb b/gen_theme.rb index d7530d3..ed50002 100755 --- a/gen_theme.rb +++ b/gen_theme.rb @@ -3,12 +3,14 @@ require 'liquid' require 'fileutils' +require 'tmpdir' THEME_NAME = 'iPawbMini' # MAIN_MENU_TITLE = 'iPod mini' MAIN_MENU_TITLE = 'iPawb mini' DEST_DIR = File.join(__dir__, 'dist', THEME_NAME) +DEST_ZIP = File.join(__dir__, 'dist', "#{THEME_NAME}.zip") TEMPLATE_PATH = File.join(__dir__, 'templates') BASE_TEMPLATE = 'base.liquid' @@ -41,8 +43,14 @@ base_vars = { 'generated_at' => Time.now.to_s }.freeze +if ARGV.include?("clean") + puts "===> Removing dest dir" + FileUtils.rm_f(DEST_DIR) +end FileUtils.mkdir_p(DEST_DIR) +GENERATED_FILES = Array.new + puts "===> Generating WPS screens" FileUtils.mkdir_p(File.join(DEST_DIR, 'wps')) TEMPLATES.each do |src, dst| @@ -59,6 +67,7 @@ TEMPLATES.each do |src, dst| dest_full = File.join(DEST_DIR, dst) puts "writing #{dest_full} ..." + GENERATED_FILES << dest_full File.open(dest_full, 'w') do |f| f.puts result end @@ -66,7 +75,9 @@ end puts "===> Generating theme config" FileUtils.mkdir_p(File.join(DEST_DIR, 'themes')) -File.open(File.join(DEST_DIR, 'themes', "#{THEME_NAME}.cfg"), 'w') do |f| +theme_config_path = File.join(DEST_DIR, 'themes', "#{THEME_NAME}.cfg") +GENERATED_FILES << theme_config_path +File.open(theme_config_path, 'w') do |f| f.puts "# #{THEME_NAME} Rockbox theme" f.puts "# Generated using gen_theme.rb at #{base_vars['generated_at']}" f.puts @@ -84,6 +95,7 @@ def copy(kind, pattern, dest_dir) FileUtils.mkdir_p(dest_dir) source_files.each do |source_file| dest_file = File.join(dest_dir, File.basename(source_file)) + GENERATED_FILES << dest_file puts dest_file FileUtils.cp(source_file, dest_file) end @@ -91,3 +103,27 @@ end copy :fonts, File.join(__dir__, 'fonts', '*.fnt'), File.join(DEST_DIR, 'fonts') copy :images, File.join(__dir__, 'images', '*.bmp'), File.join(DEST_DIR, 'wps', THEME_NAME) + +if ARGV.include?("package") + puts "===> Creating zip archive for distribution ..." + FileUtils.rm_f DEST_ZIP + rootdir = __dir__ + dirs = GENERATED_FILES.map { |x| File.dirname(x.sub("#{rootdir}/dist/iPawbMini", '.rockbox')) }.uniq + + Dir.mktmpdir do |tmpdir| + Dir.chdir(tmpdir) do + dirs.each do |d| + puts "mkdir\t#{d}" + FileUtils.mkdir_p(d) + end + GENERATED_FILES.each do |source_file| + dest_file = source_file.sub("#{rootdir}/dist/iPawbMini", '.rockbox') + puts "cp\t#{source_file} -> #{dest_file}" + FileUtils.cp(source_file, dest_file) + end + zip_command = ["zip", DEST_ZIP, "-r", ".rockbox"] + puts zip_command.join(' ') + system *zip_command + end + end +end |
