Last active
November 29, 2019 23:35
-
-
Save schoblaska/eb3ef2a60f5ef31d1fc561ce41d0e353 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require "rubygems" | |
require "fuzzy_match" | |
def find_match(str, opts = {}) | |
notes = {} | |
Dir["#{ENV["HOME"]}/Dropbox/notes/**/*"].select { |n| n =~ /\./ }.each do |path| | |
key = path.split("Dropbox/notes/")[1] | |
notes[key] = path | |
end | |
matches = FuzzyMatch.new(notes.keys, opts).find(str) | |
if opts[:find_all_with_score] | |
matches.map do |match| | |
[notes[match[0]], match[1], match[2]] | |
end | |
else | |
notes[matches] | |
end | |
end | |
if ARGV.empty? | |
puts "Usage:" | |
puts "- note [name] | open note in vim" | |
puts "- note -s [name] | show matching notes" | |
puts "- note -c [name] | copy full path to clipboard" | |
puts "- note -p [name] | full path of best match (for use in scripts / pipes)" | |
puts "- note -t [name] | open note in typo" | |
elsif ARGV[0] == "-s" | |
puts | |
matches = find_match(ARGV[1..-1].join(" "), find_all_with_score: true) | |
matches.first(5).each do |match| | |
short = match[0].gsub("#{ENV["HOME"]}/Dropbox/notes/", "") | |
score = match[1].to_s[0, 5].ljust(5, " ") | |
puts "#{score} : #{short}" | |
end | |
puts | |
elsif ARGV[0] == "-t" | |
match = find_match(ARGV[1..-1].join(" ")) | |
`typo "#{match}"` | |
elsif ARGV[0] == "-c" | |
match = find_match(ARGV[1..-1].join(" ")) | |
exec("echo \"#{match.gsub(" ", "\\ ")}\" | tr -d '\n' | pbcopy") | |
elsif ARGV[0] == "-p" | |
match = find_match(ARGV[1..-1].join(" ")) | |
exec("echo \"#{match.gsub(" ", "\\ ")}\" | tr -d '\n'") | |
else | |
match = find_match(ARGV.join(" ")) | |
macvim = "/usr/local/opt/[email protected]/bin/vim" | |
vim = File.exists?(macvim) ? macvim : "vim" | |
exec("#{vim} -c \"ProseMode\" \"#{match}\"") | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment