Class: Aspera::Products::Trsdk

Inherits:
Object
  • Object
show all
Defined in:
lib/aspera/products/trsdk.rb

Constant Summary collapse

APP_NAME =
'IBM Aspera Transfer Daemon'

Class Method Summary collapse

Class Method Details

.daemon_port_from_log(log_file) ⇒ Object

Well, the port number is only in log file



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/aspera/products/trsdk.rb', line 35

def daemon_port_from_log(log_file)
  result = nil
  # if port is zero, a dynamic port was created, get it
  File.open(log_file, 'r') do |file|
    file.each_line do |line|
      # Well, it's tricky to depend on log
      if (m = line.match(/Info: API Server: Listening on ([^:]+):(\d+) /))
        result = m[2].to_i
        # no "break" , need to read last matching log line
      end
    end
  end
  raise 'Port not found in daemon logs' if result.nil?
  Log.log.debug{"Got port #{result} from log"}
  return result
end

.locationsObject

standard folder locations



9
10
11
12
13
14
# File 'lib/aspera/products/trsdk.rb', line 9

def locations
  [{
    app_root: sdk_directory,
    sub_bin:  ''
  }].map { |i| i.merge({ expected: APP_NAME }) }
end

.sdk_directoryObject

Returns the path to folder where SDK is installed.

Returns:

  • the path to folder where SDK is installed



24
25
26
27
28
# File 'lib/aspera/products/trsdk.rb', line 24

def sdk_directory
  Aspera.assert(!@sdk_dir.nil?){'SDK path was not initialized'}
  FileUtils.mkdir_p(@sdk_dir)
  @sdk_dir
end

.sdk_directory=(v) ⇒ Object

location of SDK files



17
18
19
20
21
# File 'lib/aspera/products/trsdk.rb', line 17

def sdk_directory=(v)
  Log.log.debug{"sdk_directory=#{v}"}
  @sdk_dir = v
  sdk_directory
end

.transferd_pathObject



30
31
32
# File 'lib/aspera/products/trsdk.rb', line 30

def transferd_path
  return File.join(sdk_directory, Environment.exe_file('asperatransferd')) # cspell:disable-line
end