Sha256: dfd8a91451749a0c6378f94c26ff217d407abeaf9011c7bb8a2ef4c36001da2e

Contents?: true

Size: 1.61 KB

Versions: 21

Compression:

Stored size: 1.61 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

	desc "version", "Taps version"
	def version
		puts Taps.version
	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

21 entries across 21 versions & 2 rubygems

Version Path
ricardochimal-taps-0.2.12 lib/taps/cli.rb
ricardochimal-taps-0.2.13 lib/taps/cli.rb
ricardochimal-taps-0.2.14 lib/taps/cli.rb
ricardochimal-taps-0.2.15 lib/taps/cli.rb
ricardochimal-taps-0.2.16 lib/taps/cli.rb
ricardochimal-taps-0.2.18 lib/taps/cli.rb
ricardochimal-taps-0.2.19 lib/taps/cli.rb
taps-0.2.24 lib/taps/cli.rb
taps-0.2.23 lib/taps/cli.rb
taps-0.2.22 lib/taps/cli.rb
taps-0.2.21 lib/taps/cli.rb
taps-0.2.20 lib/taps/cli.rb
taps-0.2.19 lib/taps/cli.rb
taps-0.2.16 lib/taps/cli.rb
taps-0.2.15 lib/taps/cli.rb
taps-0.2.14 lib/taps/cli.rb
taps-0.2.12 lib/taps/cli.rb
taps-0.2.13 lib/taps/cli.rb
taps-0.2.11 lib/taps/cli.rb
taps-0.2.18 lib/taps/cli.rb