summaryrefslogtreecommitdiff
path: root/lib/oxidized/model/asyncos.rb
blob: 9e4d10e9add7cb2bfa43c9d2704c9f7f024f6b94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class AsyncOS < Oxidized::Model
  # ESA prompt "(mail.example.com)> " or "mail.example.com> "
  prompt /^\r*([(]?[\w. ]+[)]?[#>]\s+)$/
  comment '! '

  # Select passphrase display option
  expect /\[\S+\]>\s/ do |data, re|
    send "3\n"
    data.sub re, ''
  end

  # handle paging
  expect /-Press Any Key For More-+.*$/ do |data, re|
    send " "
    data.sub re, ''
  end

  cmd 'version' do |cfg|
    comment cfg
  end

  cmd 'showconfig' do |cfg|
    # Delete hour and date which change each run
    # cfg.gsub! /\sCurrent Time: \S+\s\S+\s+\S+\s\S+\s\S+/, ' Current Time:'
    # Delete select passphrase display option
    cfg.gsub! /Choose the passphrase option:/, ''
    cfg.gsub! /1. Mask passphrases \(Files with masked passphrases cannot be loaded using/, ''
    cfg.gsub! /loadconfig command\)/, ''
    cfg.gsub! /2. Encrypt passphrases/, ''
    cfg.gsub! /3. Plain passphrases/, ''
    cfg.gsub! /^3$/, ''
    # Delete space
    cfg.gsub! /\n\s{25,26}/, ''
    # Delete after line
    cfg.gsub! /([-\\\/,.\w><@]+)(\s{25,27})/, "\\1"
    # Add a carriage return
    cfg.gsub! /([-\\\/,.\w><@]+)(\s{6})([-\\\/,.\w><@]+)/, "\\1\n\\2\\3"
    # Delete prompt
    cfg.gsub! /^\r*([(][\w. ]+[)][#>]\s+)$/, ''
    cfg
  end

  cfg :ssh do
    pre_logout "exit"
  end
end