Module: Eye::Local

Defined in:
lib/eye/local.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.local_runnerObject

Returns the value of attribute local_runner


102
103
104
# File 'lib/eye/local.rb', line 102

def local_runner
  @local_runner
end

Class Method Details

.cache_pathObject


53
54
55
# File 'lib/eye/local.rb', line 53

def cache_path
  path("processes#{ENV['EYE_V']}.cache")
end

.client_timeoutObject


61
62
63
# File 'lib/eye/local.rb', line 61

def client_timeout
  @client_timeout ||= default_client_timeout
end

.client_timeout=(cl) ⇒ Object


65
66
67
# File 'lib/eye/local.rb', line 65

def client_timeout=(cl)
  @client_timeout = cl
end

.default_client_timeoutObject


57
58
59
# File 'lib/eye/local.rb', line 57

def default_client_timeout
  (ENV['EYE_CLIENT_TIMEOUT'] || 5).to_i
end

.dirObject


5
6
7
8
9
10
11
12
13
# File 'lib/eye/local.rb', line 5

def dir
  @dir ||= begin
    if root?
      '/var/run/eye'
    else
      File.expand_path(File.join(home, '.eye'))
    end
  end
end

.dir=(d) ⇒ Object


15
16
17
# File 'lib/eye/local.rb', line 15

def dir=(d)
  @dir = d
end

.ensure_eye_dirObject


41
42
43
# File 'lib/eye/local.rb', line 41

def ensure_eye_dir
  FileUtils.mkdir_p(dir)
end

.eyeconfigObject


19
20
21
22
23
24
25
# File 'lib/eye/local.rb', line 19

def eyeconfig
  if root?
    '/etc/eye.conf'
  else
    File.expand_path(File.join(home, '.eyeconfig'))
  end
end

.eyefileObject


84
85
86
# File 'lib/eye/local.rb', line 84

def eyefile
  @eyefile ||= find_eyefile('.')
end

.find_eyefile(start_from_dir) ⇒ Object


88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/eye/local.rb', line 88

def find_eyefile(start_from_dir)
  fromenv = ENV['EYE_FILE']
  return fromenv if fromenv && !fromenv.empty? && File.file?(fromenv)

  previous = nil
  current  = File.expand_path(start_from_dir)

  until !File.directory?(current) || current == previous
    filename = File.join(current, 'Eyefile')
    return filename if File.file?(filename)
    current, previous = File.expand_path('..', current), current
  end
end

.homeObject


31
32
33
34
35
# File 'lib/eye/local.rb', line 31

def home
  h = ENV['EYE_HOME'] || ENV['HOME']
  raise "HOME undefined, should be HOME or EYE_HOME environment" unless h
  h
end

.hostObject


73
74
75
76
77
78
# File 'lib/eye/local.rb', line 73

def host
  @host ||= begin
    require 'socket'
    Socket.gethostname
  end
end

.host=(hostname) ⇒ Object


80
81
82
# File 'lib/eye/local.rb', line 80

def host=(hostname)
  @host = hostname
end

.path(path) ⇒ Object


37
38
39
# File 'lib/eye/local.rb', line 37

def path(path)
  File.expand_path(path, dir)
end

.pid_pathObject


49
50
51
# File 'lib/eye/local.rb', line 49

def pid_path
  path(ENV['EYE_PID'] || "pid#{ENV['EYE_V']}")
end

.root?Boolean

Returns:

  • (Boolean)

27
28
29
# File 'lib/eye/local.rb', line 27

def root?
  Process::UID.eid == 0
end

.socket_pathObject


45
46
47
# File 'lib/eye/local.rb', line 45

def socket_path
  path(ENV['EYE_SOCK'] || "sock#{ENV['EYE_V']}")
end

.supported_setsid?Boolean

Returns:

  • (Boolean)

69
70
71
# File 'lib/eye/local.rb', line 69

def supported_setsid?
  RUBY_VERSION >= '2.0'
end