homeseed 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|