-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathupdate-stackscripts
More file actions
executable file
·95 lines (78 loc) · 1.44 KB
/
Copy pathupdate-stackscripts
File metadata and controls
executable file
·95 lines (78 loc) · 1.44 KB
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
47
48
49
50
51
52
53
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env ruby
require 'rubygems'
require 'linode'
require 'optparse'
class Array
def rest
self[1..-1]
end
end
def l
if not ENV.has_key?('LINODE_API_KEY')
puts "You must define the environment variable LINODE_API_KEY"
exit 1
end
$l ||= Linode.new(:api_key => ENV['LINODE_API_KEY'])
end
class Env
# Populate with usage string in subclass
@usage = nil
def self.go(params)
end
def self.usage
puts "Usage: #{@usage}"
end
end
class SummaryEnv < Env
def self.go(params)
puts "linode"
end
end
class DirectoryParser
def self.parse()
if File.exists?("README.md")
txt = File.open("README.md")
description = txt.read
else
description = ''
end
{
:description => description
}
end
end
class SSUpdate < Env
def self.go(params)
@usage = 'update <id>'
unless params.size == 1
usage
exit 1
end
ssid = params[0]
l.stackscript.update(
:stackscriptid => ssid,
:label => label,
:description => description,
:distributionidlist => distributionids,
:ispublic => ispublic,
:rev_note => rev_note,
:script => script
)
end
end
class LinodeEnv < Env
def self.go(params)
puts "whee"
end
end
ENVS = {
:summary => SummaryEnv,
:dns => DNSEnv,
:l => LinodeEnv
}
env = ARGV[0] && ARGV[0].downcase.to_sym || :summary
unless ENVS.include? env
puts "Not valid env"
exit 1
end
ENVS[env]::go ARGV.rest