|
| 1 | +require_relative "lib/project_pull_mover" |
| 2 | + |
| 3 | +logger = nil |
| 4 | +def load_logger |
| 5 | + logger ||= ProjectPullMover::Logger.new(out_stream: $stdout, err_stream: $stderr) |
| 6 | +end |
| 7 | + |
| 8 | +options = nil |
| 9 | +def load_options(argv: ARGV, logger: nil) |
| 10 | + options ||= ProjectPullMover::Options.parse(argv: argv, proj_items_limit: 500, pull_fields_per_query: 7, |
| 11 | + logger: logger || load_logger) |
| 12 | +end |
| 13 | + |
| 14 | +gh_cli = nil |
| 15 | +def load_gh_cli(options: nil, logger: nil) |
| 16 | + lgr = logger || load_logger |
| 17 | + gh_cli ||= ProjectPullMover::GhCli.new(options: options || load_options(logger: lgr), logger: lgr) |
| 18 | +end |
| 19 | + |
| 20 | +data_loader = nil |
| 21 | +def load_data_loader(gh_cli: nil, options: nil, logger: nil) |
| 22 | + lgr = logger || load_logger |
| 23 | + opts = options || load_options(logger: lgr) |
| 24 | + cli = gh_cli || load_gh_cli(options: opts, logger: lgr) |
| 25 | + data_loader ||= ProjectPullMover::DataLoader.call(gh_cli: cli, options: opts, logger: lgr) |
| 26 | +end |
| 27 | + |
| 28 | +def run(data_loader: nil, options: nil, logger: nil) |
| 29 | + lgr = logger || load_logger |
| 30 | + opts = options || load_options(logger: lgr) |
| 31 | + data = data_loader || load_data_loader(logger: lgr, options: opts) |
| 32 | + ProjectPullMover::PullRequestMover.run(data: data, options: opts, logger: lgr) |
| 33 | +end |
0 commit comments