lib/datapimp/cli/sync.rb in datapimp-1.0.0 vs lib/datapimp/cli/sync.rb in datapimp-1.0.1
- old
+ new
@@ -1,15 +1,27 @@
command "sync folder" do |c|
c.description = "Synchronize the contents of a local folder with a file sharing service"
c.syntax = "datapimp sync folder LOCAL_PATH REMOTE_PATH [OPTIONS]"
c.option '--type TYPE', String, "Which service is hosting the folder"
+ c.option '--action ACTION', String, "Which sync action to run? push, pull"
Datapimp::Cli.accepts_keys_for(c, :amazon, :google, :github, :dropbox)
c.action do |args, options|
+ options.default(action:"pull", type: "dropbox")
+ local, remote = args
+
+ folder = case
+ when options.type == "dropbox"
+ Datapimp::Sync::DropboxFolder.new(local: local, remote: remote)
+ when options.type == "google"
+ Datapimp::Sync::GoogleDriveFolder.new(local: local, remote: remote)
+ end
+
+ folder.run(options.action)
end
end
command "sync data" do |c|
c.description = "Synchronize the contents of a local data store with its remote source"
@@ -18,12 +30,15 @@
c.option '--type TYPE', String, "What type of source data is this? #{ Datapimp::Sync.data_source_types.join(", ") }"
c.option '--output FILE', String, "Write the output to a file"
c.option '--columns NAMES', Array, "Extract only these columns"
c.example "Syncing an excel file from dropbox ", "datapimp sync data --type dropbox --columns name,description --dropbox-app-key ABC --dropbox-app-secret DEF --dropbox-client-token HIJ --dropbox-client-secret JKL spreadsheets/test.xslx"
+ c.example "Syncing a google spreadsheet", "datapimp sync data --type google-spreadsheet WHATEVER_THE_KEY_IS"
Datapimp::Cli.accepts_keys_for(c, :google, :github, :dropbox)
c.action do |args, options|
-
+ if options.type == "google-spreadsheet"
+ Datapimp::DataSync.sync_google_spreadsheet(options, args)
+ end
end
end