From 78220d28eea0846fd3ce55fff062c1ba9ddd99cb Mon Sep 17 00:00:00 2001 From: polarlights Date: Sat, 4 Jul 2020 11:57:43 +0800 Subject: [PATCH] fix: fix parse error as it will parse twice no matter what it is --- bin/confluence-publisher | 1 - .../confluence_publisher/command.rb | 33 ++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/bin/confluence-publisher b/bin/confluence-publisher index d126a24..bc983a9 100755 --- a/bin/confluence-publisher +++ b/bin/confluence-publisher @@ -2,6 +2,5 @@ # frozen_string_literal: true $LOAD_PATH.unshift File.expand_path '../../lib', __FILE__ require 'asciidoctor/confluence_publisher/command' -require 'pry-byebug' Asciidoctor::ConfluencePublisher::Command.execute ARGV diff --git a/lib/asciidoctor/confluence_publisher/command.rb b/lib/asciidoctor/confluence_publisher/command.rb index e89ecdb..7f68003 100644 --- a/lib/asciidoctor/confluence_publisher/command.rb +++ b/lib/asciidoctor/confluence_publisher/command.rb @@ -18,22 +18,15 @@ def self.execute(args) source_dir = nil 2.times do result = options.parse! args - if result.is_a? Integer - if args.size == 1 - file = args.first - fstat = ::File.stat file - if fstat.ftype == 'directory' && (input_files = parse_directory_files(file)).size > 0 - source_dir = file - orig_args.reject! { |_arg| file == _arg } - orig_args.concat input_files - args = orig_args - else - exit result - end - else - exit result - end + break unless result.is_a? Integer + + can_retry = false + if args.size == 1 + source_dir = args.first + args = convert_directory_to_files(source_dir, orig_args) + can_retry = true end + exit result unless can_retry end options[:asciidoc_source_dir] = source_dir @@ -43,6 +36,16 @@ def self.execute(args) end private + + def self.convert_directory_to_files(file, orig_args) + fstat = ::File.stat file + if fstat.ftype == 'directory' && (input_files = parse_directory_files(file)).size > 0 + orig_args.reject! { |_arg| file == _arg } + orig_args.concat input_files + return orig_args + end + end + # hack asciidoctor to support folder def self.parse_directory_files(directory) infiles = []