Class: Propro::Script

Inherits:
Object
  • Object
show all
Defined in:
lib/propro/script.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeScript

Returns a new instance of Script.



9
10
11
12
13
14
15
16
# File 'lib/propro/script.rb', line 9

def initialize
  @sources  = []
  @options  = []
  @commands = []
  @server   = nil
  @password = nil
  source :lib
end

Class Method Details

.load(file) ⇒ Object



3
4
5
6
7
# File 'lib/propro/script.rb', line 3

def self.load(file)
  script = new
  script.load_file(file)
  script
end

Instance Method Details

#get_passwordObject



34
35
36
# File 'lib/propro/script.rb', line 34

def get_password
  @password
end

#get_serverObject



30
31
32
# File 'lib/propro/script.rb', line 30

def get_server
  @server
end

#get_userObject



38
39
40
# File 'lib/propro/script.rb', line 38

def get_user
  @user
end

#load_file(file) ⇒ Object



18
19
20
21
22
# File 'lib/propro/script.rb', line 18

def load_file(file)
  @file = file
  @file_name = File.basename(@file)
  instance_eval(File.read(file))
end

#provision(*commands) ⇒ Object



50
51
52
# File 'lib/propro/script.rb', line 50

def provision(*commands)
  @commands.concat(commands.flatten.map { |c| Command.new(c) })
end

#server(host, opts = {}) ⇒ Object



24
25
26
27
28
# File 'lib/propro/script.rb', line 24

def server(host, opts = {})
  @server   = host
  @password = opts[:password]
  @user     = opts[:user] || 'root'
end

#set(key, value) ⇒ Object



46
47
48
# File 'lib/propro/script.rb', line 46

def set(key, value)
  @options << Option.new(key, value)
end

#source(src) ⇒ Object



42
43
44
# File 'lib/propro/script.rb', line 42

def source(src)
  @sources.concat(Package.sources_for_path(src))
end

#to_bashObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/propro/script.rb', line 54

def to_bash
  <<-SH
#!/usr/bin/env bash
#{Propro.comment_banner}
#
# Built from: #{@file_name}

unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW="YES"
export DEBIAN_FRONTEND="noninteractive"

#{sources_bash}

# Options from: #{@file_name}
#{options_bash}

function main {
  #{commands_bash}
  finished
  reboot-system
}

main

SH
end