Skip to content

Instantly share code, notes, and snippets.

@kelso
Created October 25, 2013 06:06
Show Gist options
  • Save kelso/7150076 to your computer and use it in GitHub Desktop.
Save kelso/7150076 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'fileutils'
class CameraTool
CAMERA_UPLOADS_LOCAL = "/Users/kelso/Dropbox/Camera Uploads/"
CAMERA_PHOTOS_ARCHIVE_LOCAL = "/Users/kelso/Documents/Camera Uploads/Photos/"
CAMERA_VIDEOS_ARCHIVE_LOCAL = "/Users/kelso/Documents/Camera Uploads/Videos/"
CAMERA_PHOTOS_ARCHIVE_EXTERNAL = "/Volumes/My Book/Camera/Photos/"
CAMERA_VIDEOS_ARCHIVE_EXTERNAL = "/Volumes/My Book/Camera/Videos/"
def initialize
end
def archive
photos_count, videos_count = 0, 0
Dir.glob(CAMERA_UPLOADS_LOCAL + "*").each do |i|
if i.include?(".jpg") or i.include?(".JPG") or i.include?(".png")
FileUtils.mv i, CAMERA_PHOTOS_ARCHIVE_LOCAL#, :verbose => true
photos_count += 1
elsif i.include?(".mov")
FileUtils.mv i, CAMERA_VIDEOS_ARCHIVE_LOCAL#, :verbose => true
videos_count += 1
end
end
[photos_count, videos_count]
end
def move_to_hdd
photos_count, videos_count = 0, 0
# Move photos to external HDD
Dir.glob(CAMERA_PHOTOS_ARCHIVE_LOCAL + "*").each do |i|
if i.include?(".jpg") or i.include?(".JPG") or i.include?(".png")
FileUtils.mv i, CAMERA_PHOTOS_ARCHIVE_EXTERNAL
photos_count += 1
end
end
# Move videos to external HDD
Dir.glob(CAMERA_VIDEOS_ARCHIVE_LOCAL + "*").each do |i|
if i.include?(".mov")
FileUtils.mv i, CAMERA_VIDEOS_ARCHIVE_EXTERNAL
videos_count += 1
end
end
[photos_count, videos_count]
end
def fix_hdd
videos_count = 0
# Move out videos from photos folder
Dir.glob(CAMERA_PHOTOS_ARCHIVE_EXTERNAL + "*").each do |i|
if i.include?(".mov")
FileUtils.mv i, CAMERA_VIDEOS_ARCHIVE_EXTERNAL
videos_count += 1
end
end
videos_count
end
end
tool = CameraTool.new
puts "[a] for archive"
puts "[m] move to hdd"
puts "[f] fix HDD camera files:"
print "Action: "
input = gets.strip
puts ""
case input
when "a"
puts "-> Archiving files..."
result = tool.archive
puts "-> Done. Archived #{result[0]} photos & #{result[1]} videos."
when "m"
puts "-> Moving files to hdd..."
result = tool.move_to_hdd
puts "-> Done. Moved #{result[0]} photos & #{result[1]} videos."
when "f"
puts "-> Fixing files on hdd..."
result = tool.fix_hdd
puts "-> Done. Moved #{result} videos to the right location."
end
puts ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment