55 lines
1.6 KiB
Ruby
55 lines
1.6 KiB
Ruby
#!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 |