#!/usr/bin/env ruby require "arxutils_sqlite3" require "simpleoptparse" require "pp" require "ykutils" require "ykxutils" config = Arxutils_Sqlite3::Config.new opts, klass = config.setupx(self) # p opts # p klass # exit banner = "Usage: bundle exec arxutils_sqlite3 --cmd=(s|cds|co|c|f|m|a|d|b|y) -y yaml_file --klass=class" Simpleoptparse::Simpleoptparse.parse(ARGV, opts, banner, Arxutils_Sqlite3::VERSION, nil) do |parser| parser.on("--cmd X", %w[s cds co c f m a d b y]) { |x| opts["cmd"] = x } parser.on("-y yaml_file", "--yaml yaml_file") { |x| opts["yaml"] = x } parser.on("--klass klass") { |x| opts["klass"] = x } end dbconfig = Arxutils_Sqlite3::Config::DBCONFIG_SQLITE3 env = ENV.fetch("ENV", nil) env ||= "production" cli = Arxutils_Sqlite3::Cli.new(config, dbconfig, env) case opts["cmd"] when "s" # config.check_file_exist(Arxutils_Sqlite3::Config::SAMPLE_DEST_OPTS_FILE, banner, 10) if opts["klass"].nil? || opts["klass"].strip == "" puts banner exit 20 end cli.setup(klass) when "cds" cli.copy_db_scheme when "co" cli.copy_opts_file when "c" acrecord = opts[:acrecord] cli.makeconfig(acrecord, banner, 30, opts) when "f" yaml_fname = opts["yaml"] acrecord = opts[:acrecord] if yaml_fname.nil? || yaml_fname.strip == "" puts banner exit 40 end yaml_pn = Pathname.new(yaml_fname) config.check_file_not_exist(yaml_pn, banner, 55) cli.setup_for_migrate(yaml_pn, acrecord, klass) when "m" cli.migrate when "a" cli.acr when "d" db_scheme_ary = nil acrecord = opts["acrecord"] cli.delete(db_scheme_ary, acrecord) when "b" db_scheme_ary = nil acrecord = opts["acrecord"] cli.delete_db(db_scheme_ary, acrecord) when "y" cli.delete_setting_yaml else puts "Invalid command(#{opts["cmd"]}) specified!!" end