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'