bin/expandsync in expandsync-0.1.0 vs bin/expandsync in expandsync-0.1.1

- old
+ new

@@ -1,53 +1,53 @@ #!/usr/bin/env ruby require 'csv' require 'expandsync' +require 'fileutils' require 'methadone' require 'nokogiri' require 'optparse' class App include Methadone::Main include Methadone::CLILogging main do |atext_filepath| begin - # Collect snippets from both aText and TextExpander and create an - # array with the unique entries of both. - atext = AText.new(atext_filepath) - textexpander = TextExpander.new(options[:t] || ExpandSync::DEFAULT_TE_SNIPPET_PATH) - combined_snippets = (atext.snippets + textexpander.snippets).uniq { |s| s[0] } + atext = AText.new(atext_filepath, options[:a]) + textexpander = TextExpander.new - # Next, create file content (CSV for aText, XML for TextExpander) + # Create file content (CSV for aText, XML for TextExpander) # that contains the correct data: # 1. aText CSV should contain any new TextExpander snippets. # 2. TextExpander XML should contain original snippets *and* # any new aText snippets. - new_at_csv = atext.construct_data(combined_snippets - atext.snippets) - new_te_xml = textexpander.construct_data(combined_snippets - textexpander.snippets) + combined_snippets = (atext.snippets + textexpander.snippets).uniq { |s| s[0] } + atext.construct_data(combined_snippets - atext.snippets) + textexpander.construct_data(combined_snippets - textexpander.snippets) - # Save new aText snippets - File.open(options[:a] || ExpandSync::DEFAULT_AT_OUTPUT_PATH, 'w') {|f| f.write(new_at_csv) } + # Save new aText snippets . + atext.save - # Backup the original TextExpander file and output the new one. - FileUtils.cp(ExpandSync::DEFAULT_TE_SNIPPET_PATH, ExpandSync::DEFAULT_TE_SNIPPET_PATH + '.bak') - File.open(ExpandSync::DEFAULT_TE_SNIPPET_PATH, 'w') {|f| f.write(new_te_xml) } + # Backup the original TextExpander file (unless the user has specified + # that they don't want a backup) and save the new one. + textexpander.backup unless options[:n] + textexpander.save # This has to be here so that my Cucumber Aruba tests work. Don't ask why. leak_exceptions(true) rescue StandardError => e ExpandSync::CLIMessage.error(e, false) + exit!(1) end end description ExpandSync::DESCRIPTION version ExpandSync::VERSION # Flags & Switches - on('-a FILEPATH', "Specify an output location for aText rules (default to...})") - on('-n', ) - on('-t FILEPATH', 'Specify a location for the TextExpander iOS XML file') + on('-a FILEPATH', "Output location for aText rules (defaults to ~/#{ AText::OUTPUT_FILENAME })") + on('-n', 'Disable backing up of Settings.textexpander (RUN AT YOUR OWN RISK!)') on('-v', '--verbose', 'Turn on verbose output') # Arguments arg :atext_filepath, 'The filepath to a CSV file exported from aText'