Skip to content

Instantly share code, notes, and snippets.

@ocxo
Last active December 11, 2015 03:48
Show Gist options
  • Save ocxo/4540431 to your computer and use it in GitHub Desktop.
Save ocxo/4540431 to your computer and use it in GitHub Desktop.
require 'dropbox-api'
require "yaml"
config = YAML.load_file "dropbox.yml"
Dropbox::API::Config.app_key = config['app_key']
Dropbox::API::Config.app_secret = config['app_secret']
Dropbox::API::Config.mode = config['mode']
client = Dropbox::API::Client.new \
token: config['token'],
secret: config['secret']
target_dir = config['target_dir']
dir = config['src_dir']
def traverse_dir(dir, client)
Dir.glob("#{dir}/*").each_with_object({}) do |file, obj|
if File.file?(file)
content = File.open(file, "r:binary").read
create_file(file, content, client)
elsif File.directory?(file)
dir_name = file.split("/").last
create_dir("build/#{dir_name}", client)
obj[file] = traverse_dir(file, client)
end
end
end
def create_file(file, content, client)
client.upload(File.basename(file), content)
end
def create_dir(name, client)
client.mkdir name
end
traverse_dir(dir, client)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment