aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgen_theme.rb38
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