-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup_wizard.rb
49 lines (45 loc) · 2.25 KB
/
setup_wizard.rb
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
class SetupWizard
def self.global(fresnel)
if File.exists?(fresnel.global_config_file)
config=YAML::load_file(fresnel.global_config_file)
end
config=Hash.new unless config
puts "================================================"
puts " Fresnel - #{fresnel.app_description} "
puts " config wizard "
puts "================================================"
puts
config['account']=ask("My lighthouse account is : ") do |q|
q.validate = /^\w+$/
q.responses[:not_valid]="\nError :\nThat seems to be incorrect, we would like to have the <account> part in\nhttp://<account>.lighthouseapp.com , please try again"
q.responses[:ask_on_error]="My lighthouse account is : "
q.default=config['account']||ENV['USER']
end
puts
puts "what token would you like to use for the account : #{config['account']} ?"
config['token']=ask("My lighthouse token is : ") do |q|
q.validate = /^[0-9a-f]{40}$/
q.responses[:not_valid]="\nError :\nThat seems to be incorrect, we would like to have your lighthouse token\n this looks something like : 1bd25cc2bab1fc4384b7edfe48433fba5f6ee43c"
q.responses[:ask_on_error]="My lighthouse token is : "
q.default=config['token'] if config['token']
end
Lighthouse.account=config['account']
Lighthouse.token=config['token']
user_id=Lighthouse::Token.get(fresnel.token)['user_id']
config['user_id']=ask("My lighthouse user_id is : ", Integer) do |q|
q.default=user_id
end
puts "generated your config in #{fresnel.global_config_file}, going on with main program..."
File.open(fresnel.global_config_file,'w+'){ |f| f.write(YAML::dump(config)) }
end
def self.project(fresnel)
config=Hash.new
data=fresnel.projects(:object=>true)
current_dir=File.expand_path(".").split("/").last
fresnel.projects(:selectable=>true, :clear=>false, :setup=>true)
project_id=InputDetector.new("please select which project # resides here : ", 0...data.size).answer
config['project_id']=data[project_id].id
puts "generated your config in #{fresnel.project_config_file}, going on with main program..."
File.open(fresnel.project_config_file,'w+'){ |f| f.write(YAML::dump(config)) }
end
end