stw24/TouchGFX/Middlewares/ST/touchgfx/framework/tools/textconvert/upgrader.rb

55 lines
1.6 KiB
Ruby
Raw Normal View History

2023-03-06 21:21:00 +01:00
#!env ruby
# Copyright (c) 2018(-2023) STMicroelectronics.
# All rights reserved.
#
# This file is part of the TouchGFX 4.21.2 distribution.
#
# This software is licensed under terms that can be found in the LICENSE file in
# the root directory of this software component.
# If no LICENSE file comes with this software, it is provided AS-IS.
#
###############################################################################/
$:.unshift File.dirname(__FILE__)
require 'rubygems/version'
require 'lib/text_database_upgrader'
require 'lib/text_database_validator'
require 'lib/version'
def root_dir
# Get the dirname of this (upgrader.rb) file:
@root_dir ||= File.dirname(__FILE__)
end
class Main
def self.banner
<<-BANNER
Upgrade the text database to a specific version or the latest TouchGFX version #{TOUCHGFX_VERSION}
Usage: #{File.basename($0)} path/to/text_database [version]
Note! If no version is specified the text database will be upgraded to TouchGFX version #{TOUCHGFX_VERSION}
BANNER
end
abort self.banner if ARGV.count < 1
file_name = ARGV.shift # texts.xml or texts.xlsx
version = ARGV.shift # Version to upgrade to, if not the latest TouchGFX version
version ||= TOUCHGFX_VERSION
fail "ERROR: Version #{version} is greater than latest TouchGFX version #{TOUCHGFX_VERSION}" if Gem::Version.new(version) > Gem::Version.new(TOUCHGFX_VERSION)
begin
TextDatabaseValidator.new.validate(file_name)
TextDatabaseUpgrader.new(file_name, version).run
rescue SystemExit => e
rescue Exception => e
STDERR.puts e
STDERR.puts e.backtrace if ENV['DEBUG']
abort "An error occurred during text database upgrading!"
end
end