homeseed 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +36 -6
- data/bin/homeseed +27 -6
- data/config/homeshick-install.yml +3 -0
- data/config/homeshick-prep.yml +3 -0
- data/config/homeshick-source.yml +2 -0
- data/lib/homeseed/version.rb +1 -1
- data/lib/homeseed.rb +7 -9
- metadata +6 -5
- data/config/shick-seed.yml +0 -14
- data/config/shick-update.yml +0 -8
- /data/config/{setup-linux.yml → rbuchss-setup-linux.yml} +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzE1ZmFjNzkxZjBhMGUwNjRkMmIyY2Y4ZTc2YzU3NzliZDcwYTg2Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTUzNDcxYTVmNWJlOWUwNjdiODExYzUwZTE5ZTRiZTk0NGEwMTQ0Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MWIwZDIwYmZiMWQ5NTZjNzUxMzY0YTc2ZWNiYTIwMDdiMWY0NGM2ZGExMzEz
|
10
|
+
NDU4OTVhYWRlNDEwMmMxMzUxN2U5ZjI2MTlmNjRhMzRmYzQ2ZmQ4M2EyNjAw
|
11
|
+
NzI4NzhjOWM2ZTJlNDJlZTA0NDJlZjc2Zjk2MGU5YzhiYTk1Yjc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODBkMDBkZGYyNzMzMDNlYzkyMWZkYTQ1NjkzZGFmNGNiYjI4ZmVhMmI2MmNj
|
14
|
+
NTI2MzhjNzQwZjkyZGQ1M2IyYWVkODhkNjlmODA1ZTNhNjE4MDQ0ODk3Mzk3
|
15
|
+
MWNlZGYyNzYyODgxODE0NzlkMjAzYmQ0NTYyNGU0YTMxY2E3ZWY=
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Homeseed
|
2
2
|
|
3
|
-
|
3
|
+
CLI for config/dot-profile deployments
|
4
|
+
also is a bash login session command flattener for remote ssh exec
|
4
5
|
|
5
6
|
## Installation
|
6
7
|
|
@@ -18,16 +19,45 @@ Or install it yourself as:
|
|
18
19
|
|
19
20
|
## Usage
|
20
21
|
|
21
|
-
|
22
|
+
homeseed commands
|
23
|
+
```
|
24
|
+
➜ homeseed help
|
25
|
+
Commands:
|
26
|
+
homeseed exec [-e <command> or -f <files>] [-u <user>] -s, --servers=SERVERS # executes bash login session(s) on remote servers to run inline bash commands or bash commands from yml file
|
27
|
+
homeseed help [COMMAND] # Describe available commands or one specific command
|
28
|
+
homeseed plant [-u <user>] -s, --servers=SERVERS # installs homeshick and then dot profile based on localhost $HOME/.homeseed.yml
|
29
|
+
homeseed update [-u <user>] -s, --servers=SERVERS # updates dot profile based on localhost $HOME/.homeup.yml
|
30
|
+
```
|
31
|
+
|
32
|
+
to install dot profile on csv server list run; uses $HOME/.homeseed.yml
|
33
|
+
```
|
34
|
+
homeseed plant -s blackberry,blueberry,raspberry
|
35
|
+
```
|
36
|
+
|
37
|
+
ex $HOME/.homeseed.yml
|
38
|
+
```
|
39
|
+
homeshick:
|
40
|
+
clone:
|
41
|
+
- https://github.com/rbuchss/terminator.git --batch
|
42
|
+
- https://github.com/rbuchss/vim-4-eva.git --batch
|
43
|
+
link:
|
44
|
+
- terminator --force
|
45
|
+
- vim-4-eva --force
|
46
|
+
```
|
22
47
|
|
23
|
-
to
|
48
|
+
to update run; uses $HOME/.homeup.yml
|
24
49
|
```
|
25
|
-
homeseed
|
50
|
+
homeseed update -s soho
|
26
51
|
```
|
27
52
|
|
28
|
-
|
53
|
+
ex $HOME/.homeup.yml
|
29
54
|
```
|
30
|
-
|
55
|
+
homeshick:
|
56
|
+
pull:
|
57
|
+
- --force --batch
|
58
|
+
link:
|
59
|
+
- terminator --force
|
60
|
+
- vim-4-eva --force
|
31
61
|
```
|
32
62
|
|
33
63
|
## Contributing
|
data/bin/homeseed
CHANGED
@@ -5,18 +5,39 @@ require 'thor'
|
|
5
5
|
|
6
6
|
module Homeseed
|
7
7
|
class HomeseedCliApp < Thor
|
8
|
-
desc 'exec [-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
method_option :
|
8
|
+
desc 'exec [-e <command> or -f <files>] [-u <user>]',
|
9
|
+
'executes bash login session(s) on remote servers to run inline bash commands or bash commands from yml file'
|
10
|
+
method_option :servers, required: true, aliases: '-s', desc: 'ssh hostname(s); csv if multiple'
|
11
|
+
method_option :command, aliases: '-e', desc: 'bash command to exec'
|
12
|
+
method_option :files, aliases: '-f', desc: 'yml bash command file(s) to exec'
|
13
|
+
method_option :user, aliases: '-u', desc: 'ssh username', default: ENV['USER']
|
14
14
|
def exec
|
15
15
|
connection = Homeseed::Connection.new options
|
16
16
|
connection.ssh_exec
|
17
17
|
end
|
18
18
|
|
19
|
+
desc 'plant [-u <user>]',
|
20
|
+
'installs homeshick and then dot profile based on localhost $HOME/.homeseed.yml'
|
21
|
+
method_option :servers, required: true, aliases: '-s', desc: 'ssh hostname(s); csv if multiple'
|
22
|
+
method_option :user, aliases: '-u', desc: 'ssh username', default: ENV['USER']
|
19
23
|
def plant
|
24
|
+
config_files = %w(homeshick-prep.yml homeshick-install.yml homeshick-source.yml)
|
25
|
+
files = config_files.map { |file| File.expand_path("../../config/#{file}", __FILE__) }
|
26
|
+
files << File.expand_path('.homeseed.yml', ENV['HOME'])
|
27
|
+
connection = Homeseed::Connection.new options.merge(files: files.join(','))
|
28
|
+
connection.ssh_exec
|
29
|
+
end
|
30
|
+
|
31
|
+
desc 'update [-u <user>]',
|
32
|
+
'updates dot profile based on localhost $HOME/.homeup.yml'
|
33
|
+
method_option :servers, required: true, aliases: '-s', desc: 'ssh hostname(s); csv if multiple'
|
34
|
+
method_option :user, aliases: '-u', desc: 'ssh username', default: ENV['USER']
|
35
|
+
def update
|
36
|
+
config_files = %w(homeshick-source.yml)
|
37
|
+
files = config_files.map { |file| File.expand_path("../../config/#{file}", __FILE__) }
|
38
|
+
files << File.expand_path('.homeup.yml', ENV['HOME'])
|
39
|
+
connection = Homeseed::Connection.new options.merge(files: files.join(','))
|
40
|
+
connection.ssh_exec
|
20
41
|
end
|
21
42
|
end
|
22
43
|
HomeseedCliApp.start
|
data/lib/homeseed/version.rb
CHANGED
data/lib/homeseed.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "homeseed/version"
|
2
2
|
require 'logger'
|
3
3
|
require 'net/ssh'
|
4
|
-
require 'highline/import'
|
5
4
|
require 'yaml'
|
6
5
|
|
7
6
|
module Homeseed
|
@@ -15,10 +14,10 @@ module Homeseed
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def initialize(params={})
|
18
|
-
raise unless params[:servers] and (params[:
|
17
|
+
raise unless params[:servers] and (params[:command] or params[:files]) and params[:user]
|
19
18
|
@servers = params[:servers].split(',')
|
20
19
|
@user = params[:user]
|
21
|
-
@
|
20
|
+
@password = params[:password] || ''
|
22
21
|
|
23
22
|
if params[:command]
|
24
23
|
@flat_commands = params[:command]
|
@@ -52,27 +51,26 @@ module Homeseed
|
|
52
51
|
Hash[@servers.map do |server|
|
53
52
|
logger.info "ssh #{@user}@#{server} exec: #{@flat_commands}"
|
54
53
|
|
55
|
-
password = @has_password ? ask("Enter password: ") { |q| q.echo = "*" } : ''
|
56
54
|
exit_status = 0
|
57
|
-
Net::SSH.start(server, @user, password: password) do |ssh|
|
55
|
+
Net::SSH.start(server, @user, password: @password) do |ssh|
|
58
56
|
ssh.open_channel do |channel|
|
59
|
-
channel.exec("bash -l") do |ch,
|
57
|
+
channel.exec("bash -l") do |ch,success|
|
60
58
|
ch.send_data "#{@flat_commands}\n"
|
61
|
-
ch.on_data do |c,
|
59
|
+
ch.on_data do |c,data|
|
62
60
|
data_lines = data.split(/[\r,\n]/)
|
63
61
|
data_lines.each do |data_line|
|
64
62
|
logger.info data_line unless data_line == ''
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
68
|
-
ch.on_extended_data do |c,
|
66
|
+
ch.on_extended_data do |c,type,data|
|
69
67
|
data_lines = data.split(/[\r,\n]/)
|
70
68
|
data_lines.each do |data_line|
|
71
69
|
logger.error data_line unless data_line == ''
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
75
|
-
ch.on_request("exit-status") do |
|
73
|
+
ch.on_request("exit-status") do |c,data|
|
76
74
|
exit_status = data.read_long
|
77
75
|
end
|
78
76
|
ch.send_data "exit\n"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: homeseed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rbuchss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,9 +94,10 @@ files:
|
|
94
94
|
- README.md
|
95
95
|
- Rakefile
|
96
96
|
- bin/homeseed
|
97
|
-
- config/
|
98
|
-
- config/
|
99
|
-
- config/
|
97
|
+
- config/homeshick-install.yml
|
98
|
+
- config/homeshick-prep.yml
|
99
|
+
- config/homeshick-source.yml
|
100
|
+
- config/rbuchss-setup-linux.yml
|
100
101
|
- homeseed.gemspec
|
101
102
|
- lib/homeseed.rb
|
102
103
|
- lib/homeseed/version.rb
|
data/config/shick-seed.yml
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
source:
|
2
|
-
- "$HOME/.homesick/repos/homeshick/homeshick.sh"
|
3
|
-
homeshick:
|
4
|
-
clone:
|
5
|
-
- https://github.com/git/git.git --batch
|
6
|
-
- https://github.com/rbuchss/terminator.git --batch
|
7
|
-
- https://github.com/rbuchss/vim-4-eva.git --batch
|
8
|
-
link:
|
9
|
-
- terminator --force
|
10
|
-
- vim-4-eva --force
|
11
|
-
rm:
|
12
|
-
- -rf $HOME/git
|
13
|
-
ln:
|
14
|
-
- -s -f $HOME/.homesick/repos/git $HOME/git
|
data/config/shick-update.yml
DELETED
File without changes
|