class Reivt::CLI
Rev's cli
@author [brwnrclse]
Public Instance Methods
__print_version()
click to toggle source
# File lib/reivt/cli.rb, line 22 def __print_version puts VERSION end
create(path)
click to toggle source
# File lib/reivt/cli.rb, line 42 def create(path) doc_set = Set.new doc_ids = Set.new paths = path.split paths += options[:list_files] if options[:list_files] rev_id = nil spinner = TTY::Spinner.new('[:spinner] :msg', format: :bouncing_ball) Reivt::Auth.logged_in spinner.update(msg: 'Creating a rev...') spinner.run do rev_id = RevAPI.create_rev(options[:title], options[:description]) end spinner.success(Paint['rev created', :green]) paths.each do |x| type = File.exist?(x) ? File.ftype(x) : 'other' if type == 'file' spinner.update(msg: "#{Paint['Adding', nil, '#e3b505']} #{x}") spinner.run do doc_set.add(Util.doc_from_path(x)) end spinner.success(Paint['document created', :green]) elsif type == 'directory' spinner.update(msg: "#{Paint['Adding', nil, '#e3b505']} docs from " \ "#{Paint[path, '#2de1fc']}") if Dir.entries(x).include?('.git') spinner.run do doc_set.merge(Util.docs_from_repo(x, spinner)) end spinner.success(Paint['repo docs created', :green]) else spinner.run do doc_set.merge(Util.docs_from_dir(x)) end spinner.success(Paint['dir docs created', :green]) end else spinner.error("#{Paint['Unsupported file type:']} #{path}") end end spinner.update(msg: 'Uploading docs to rev api') spinner.run do doc_set.each do |doc| doc_id = RevAPI.create_doc(doc.blob, doc.content_type, doc.doc_name, doc.has_diff, rev_id) doc_ids.add(doc_id) end end spinner.success(Paint['docs uploaded to api', :green]) Reivt::LOGGER.info( "Login at #{Paint['wver.vaemoi.co/home', :green]} to start your rev!" ) rescue Errno::ECONNRESET, Errno::EINVAL, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::OpenTimeout, Net::ProtocolError, Reivt::BaemptyException, Reivt::GraphQLDataException, Reivt::GraphQLValidationException, Reivt::LoginException => e Reivt::DEVLOGGER.error(e.message) Reivt::LOGGER.error(e.message) unless doc_ids.empty? doc_ids.each do |id| RevAPI.delete_doc(id) end end unless rev_id.nil? RevAPI.delete_rev(rev_id) unless rev_id.nil? end Reivt::LOGGER.info('Done!') end
login()
click to toggle source
# File lib/reivt/cli.rb, line 129 def login Reivt::LOGGER.info('Login here for your token:') Reivt::LOGGER.info(Paint[Auth.auth_code_url, :green]) auth_code = Thor::Shell::Basic.new.ask("\nEnter your auth code => ") spinner = TTY::Spinner.new('[:spinner] :msg', format: :bouncing_ball) spinner.update(msg: 'Logging in') spinner.run do begin auth_token = Auth.auth_token(auth_code) user_id = RevAPI.signin_user(auth_token[:auth0_id]) if user_id.nil? spinner.update(msg: 'User not found! Creating...') user_id = RevAPI.create_user(auth_token[:auth0_id]) spinner.success(Paint['User created', :green]) end Reivt::REIVT_STORE.transaction do |store| store[:access_token] = auth_token[:access_token].strip store[:expires] = auth_token[:expires] store[:auth0_id] = auth_token[:auth0_id].strip store[:user_id] = user_id end spinner.success(Paint['Login successful :)', :green]) rescue Errno::ECONNRESET, Errno::EINVAL, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::OpenTimeout, Net::ProtocolError, Reivt::GraphQLDataException, Reivt::GraphQLValidationException, Reivt::LoginException => e Reivt::DEVLOGGER.error(e.message) Reivt::DEVLOGGER.error(e.message) end end end