class Fastlane::Actions::ScpAction

Public Class Methods

authors() click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 74
def self.authors
  ["hjanuschka"]
end
available_options() click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 36
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :username,
                                 short_option: "-u",
                                 env_name: "FL_SSH_USERNAME",
                                 description: "Username"),
    FastlaneCore::ConfigItem.new(key: :password,
                                 short_option: "-p",
                                 env_name: "FL_SSH_PASSWORD",
                                 description: "Password",
                                 sensitive: true,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :host,
                                 short_option: "-H",
                                 env_name: "FL_SSH_HOST",
                                 description: "Hostname"),
    FastlaneCore::ConfigItem.new(key: :port,
                                 short_option: "-P",
                                 env_name: "FL_SSH_PORT",
                                 description: "Port",
                                 optional: true,
                                 default_value: "22"),
    FastlaneCore::ConfigItem.new(key: :upload,
                                 short_option: "-U",
                                 env_name: "FL_SCP_UPLOAD",
                                 description: "Upload",
                                 optional: true,
                                 type: Hash),
    FastlaneCore::ConfigItem.new(key: :download,
                                 short_option: "-D",
                                 env_name: "FL_SCP_DOWNLOAD",
                                 description: "Download",
                                 optional: true,
                                 type: Hash)

  ]
end
category() click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 103
def self.category
  :misc
end
description() click to toggle source

@!group Documentation

# File fastlane/lib/fastlane/actions/scp.rb, line 32
def self.description
  "Transfer files via SCP"
end
example_code() click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 82
def self.example_code
  [
    'scp(
      host: "dev.januschka.com",
      username: "root",
      upload: {
        src: "/root/dir1",
        dst: "/tmp/new_dir"
      }
    )',
    'scp(
      host: "dev.januschka.com",
      username: "root",
      download: {
        src: "/root/dir1",
        dst: "/tmp/new_dir"
      }
    )'
  ]
end
is_supported?(platform) click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 78
def self.is_supported?(platform)
  true
end
run(params) click to toggle source
# File fastlane/lib/fastlane/actions/scp.rb, line 7
def self.run(params)
  Actions.verify_gem!('net-scp')
  require "net/scp"
  ret = nil
  Net::SCP.start(params[:host], params[:username], { port: params[:port].to_i, password: params[:password] }) do |scp|
    if params[:upload]
      scp.upload!(params[:upload][:src], params[:upload][:dst], recursive: true)
      UI.message(['[SCP COMMAND]', "Successfully Uploaded", params[:upload][:src], params[:upload][:dst]].join(': '))
    end
    if params[:download]

      t_ret = scp.download!(params[:download][:src], params[:download][:dst], recursive: true)
      UI.message(['[SCP COMMAND]', "Successfully Downloaded", params[:download][:src], params[:download][:dst]].join(': '))
      unless params[:download][:dst]
        ret = t_ret
      end
    end
  end
  ret
end