Sha256: 239061a3f8c3c1d549d71e649fb2715fa6f570a6848f979e2408345287e8d8e8

Contents?: true

Size: 1.54 KB

Versions: 15

Compression:

Stored size: 1.54 KB

Contents

require 'thor'
require File.dirname(__FILE__) + '/config'

Taps::Config.taps_database_url = ENV['TAPS_DATABASE_URL'] || 'sqlite://taps.db'

module Taps
class Cli < Thor
	desc "server <local_database_url> <login> <password>", "Start a taps database import/export server"
	method_options(:port => :numeric)
	def server(database_url, login, password)
		Taps::Config.database_url = database_url
		Taps::Config.login = login
		Taps::Config.password = password

		port = options[:port] || 5000

		Taps::Config.verify_database_url

		require File.dirname(__FILE__) + '/server'
		Taps::Server.run!({
			:port => port,
			:environment => :production,
			:logging => true
		})
	end

	desc "pull <local_database_url> <remote_url>", "Pull a database from a taps server"
	method_options(:chunksize => :numeric)
	def pull(database_url, remote_url)
		clientxfer(:cmd_receive, database_url, remote_url)
	end

	desc "push <local_database_url> <remote_url>", "Push a database to a taps server"
	method_options(:chunksize => :numeric)
	def push(database_url, remote_url)
		clientxfer(:cmd_send, database_url, remote_url)
	end

	def clientxfer(method, database_url, remote_url)
		if options[:chunksize]
			Taps::Config.chunksize = options[:chunksize] < 100 ? 100 : options[:chunksize]
		else
			Taps::Config.chunksize = 1000
		end
		Taps::Config.database_url = database_url
		Taps::Config.remote_url = remote_url

		Taps::Config.verify_database_url

		require File.dirname(__FILE__) + '/client_session'

		Taps::ClientSession.quickstart do |session|
			session.send(method)
		end
	end
end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
ricardochimal-taps-0.2.3 lib/taps/cli.rb
ricardochimal-taps-0.2.4 lib/taps/cli.rb
ricardochimal-taps-0.2.5 lib/taps/cli.rb
ricardochimal-taps-0.2.6 lib/taps/cli.rb
ricardochimal-taps-0.2.7 lib/taps/cli.rb
ricardochimal-taps-0.2.8 lib/taps/cli.rb
ricardochimal-taps-0.2.9 lib/taps/cli.rb
taps-0.2.10 lib/taps/cli.rb
taps-0.2.6 lib/taps/cli.rb
taps-0.2.7 lib/taps/cli.rb
taps-0.2.4 lib/taps/cli.rb
taps-0.2.5 lib/taps/cli.rb
taps-0.2.8 lib/taps/cli.rb
taps-0.2.3 lib/taps/cli.rb
taps-0.2.9 lib/taps/cli.rb