Class: Propro::Script
- Inherits:
-
Object
- Object
- Propro::Script
- Defined in:
- lib/propro/script.rb
Class Method Summary collapse
Instance Method Summary collapse
- #get_password ⇒ Object
- #get_server ⇒ Object
- #get_user ⇒ Object
-
#initialize ⇒ Script
constructor
A new instance of Script.
- #load_file(file) ⇒ Object
- #provision(*commands) ⇒ Object
- #server(host, opts = {}) ⇒ Object
- #set(key, value) ⇒ Object
- #source(src) ⇒ Object
- #to_bash ⇒ Object
Constructor Details
#initialize ⇒ Script
Returns a new instance of Script.
9 10 11 12 13 14 15 16 |
# File 'lib/propro/script.rb', line 9 def initialize @sources = [] = [] @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_password ⇒ Object
34 35 36 |
# File 'lib/propro/script.rb', line 34 def get_password @password end |
#get_server ⇒ Object
30 31 32 |
# File 'lib/propro/script.rb', line 30 def get_server @server end |
#get_user ⇒ Object
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) << 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_bash ⇒ Object
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 "#!/usr/bin/env bash\n\#{Propro.comment_banner}\n#\n# Built from: \#{@file_name}\n\nunset UCF_FORCE_CONFFOLD\nexport UCF_FORCE_CONFFNEW=\"YES\"\nexport DEBIAN_FRONTEND=\"noninteractive\"\n\n\#{sources_bash}\n\n# Options from: \#{@file_name}\n\#{options_bash}\n\nfunction main {\n \#{commands_bash}\n finished\n reboot-system\n}\n\nmain\n\n" end |