vps_cli 0.1.8 → 0.1.9
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 +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +4 -0
- data/lib/vps_cli/access.rb +10 -5
- data/lib/vps_cli/cli.rb +16 -12
- data/lib/vps_cli/helpers/github_http.rb +7 -1
- data/lib/vps_cli/install.rb +8 -11
- data/lib/vps_cli/version.rb +1 -1
- data/lib/vps_cli.rb +10 -28
- data/vps_cli.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c6696db497416341ea5cebc2f8b1bb1df569159bdd0c219917a6ac85650ca00
|
4
|
+
data.tar.gz: 69becc9a5ef9088e570f3b79ee8673e9be3d01d55d903b43af482977c026711e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33569fbf2c50ba92a66f8bb3b97b4106f171e25cffa5845ca8186299209823511c4ace1ad2e9bc293739ca61f5207bc1f77e014343bc7c9d93219ee38ae47385
|
7
|
+
data.tar.gz: f4fe8f63b6cee8b0bb5bfa23f791f31a802f58a72d3dd849f9a4a6c124edcf988c305f1be5010bfd01d8bd4858daaa6112f0fb400777140a17b326e00a2f9889
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
4
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (Or at least attempts to)
|
5
|
+
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## [1.9.0] - 05-26-2019
|
9
|
+
|
10
|
+
### Added
|
11
|
+
- This changelog
|
12
|
+
- Language server support
|
13
|
+
- additional commands
|
14
|
+
* update_all, login, and version
|
15
|
+
- additional documentation
|
16
|
+
|
17
|
+
### Changed
|
18
|
+
- Changed the way ssh keys are handled
|
19
|
+
- Changed some minor syntax
|
20
|
+
- Updated the README to include SOPS / GPG prereqs
|
data/README.md
CHANGED
@@ -6,6 +6,10 @@ This gem is currently unfinished and purely for my own personal use.
|
|
6
6
|
This project of pulling and pushing dotfiles as well as performing installations
|
7
7
|
etc has taken many iterations and this is its 3rd iteration
|
8
8
|
|
9
|
+
## Prerequisites
|
10
|
+
|
11
|
+
In order for the test suite to pass, you must have SOPS & GPG installed.
|
12
|
+
|
9
13
|
## Installation
|
10
14
|
|
11
15
|
Add this line to your application's Gemfile:
|
data/lib/vps_cli/access.rb
CHANGED
@@ -23,13 +23,13 @@ module VpsCli
|
|
23
23
|
def self.provide_credentials(config = VpsCli.configuration)
|
24
24
|
if File.exist?(config.credentials)
|
25
25
|
file_login(yaml_file: config.credentials, netrc_file: config.netrc)
|
26
|
+
post_github_ssh_key(config)
|
26
27
|
else
|
27
28
|
command_line_login
|
28
29
|
end
|
29
30
|
|
30
31
|
# originally accepts an opts arguemnt
|
31
32
|
generate_ssh_key
|
32
|
-
post_github_ssh_key(config)
|
33
33
|
end
|
34
34
|
|
35
35
|
# Provides all login credentials via a SOPS encrypted yaml file
|
@@ -144,15 +144,15 @@ module VpsCli
|
|
144
144
|
# @option opts [File] :yaml_file (nil) the file to decrypt values with.
|
145
145
|
#
|
146
146
|
def self.post_github_ssh_key(config = VpsCli.configuration)
|
147
|
+
return puts no_credentials_found unless File.exist?(config.credentials)
|
147
148
|
uri = URI('https://api.github.com/user/keys')
|
148
149
|
|
149
|
-
api_token = proc
|
150
|
-
decrypt(yaml_file: yaml, path: path)
|
151
|
-
end
|
150
|
+
api_token = proc { |yaml, path| decrypt(yaml_file: yaml, path: path) }
|
152
151
|
|
152
|
+
# only create the token if the credentials file exists
|
153
153
|
api_path = dig_for_path(:github, :api_token)
|
154
|
-
|
155
154
|
token = api_token.call(config.credentials, api_path)
|
155
|
+
|
156
156
|
ssh_file = File.join(Dir.home, '.ssh', 'id_rsa.pub')
|
157
157
|
title = get_title
|
158
158
|
|
@@ -172,5 +172,10 @@ module VpsCli
|
|
172
172
|
puts 'please enter a title for your ssh key'
|
173
173
|
$stdin.gets.chomp
|
174
174
|
end
|
175
|
+
|
176
|
+
def self.no_credentials_found
|
177
|
+
puts "No credentials file found. Please check that your .vps_cli contains
|
178
|
+
a valid .credentials file path"
|
179
|
+
end
|
175
180
|
end
|
176
181
|
end
|
data/lib/vps_cli/cli.rb
CHANGED
@@ -25,7 +25,7 @@ module VpsCli
|
|
25
25
|
|
26
26
|
Access.provide_credentials
|
27
27
|
|
28
|
-
|
28
|
+
print_errors
|
29
29
|
end
|
30
30
|
|
31
31
|
desc 'init [-c (File)]', 'Creates a default vps_cli configuration file in the home directory'
|
@@ -53,22 +53,26 @@ module VpsCli
|
|
53
53
|
Pull.all
|
54
54
|
end
|
55
55
|
|
56
|
-
desc '
|
57
|
-
def
|
58
|
-
|
59
|
-
|
56
|
+
desc 'update_all', 'updates all packages'
|
57
|
+
def update_all
|
58
|
+
VpsCli.load_configuration(options[:config])
|
59
|
+
Install.prep
|
60
|
+
Install.install_non_apt_packages
|
61
|
+
end
|
60
62
|
|
63
|
+
desc 'install_all', 'installs all packages'
|
64
|
+
def install_all
|
61
65
|
Install.all_install
|
62
66
|
|
63
67
|
return if VpsCli.errors.empty?
|
64
68
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
69
|
+
print_errors
|
70
|
+
end
|
71
|
+
|
72
|
+
desc 'login', 'pushes keys from your ~/.credentials.yaml file'
|
73
|
+
def login
|
74
|
+
VpsCli.load_configuration(options[:config])
|
75
|
+
VpsCli.provide_credentials
|
72
76
|
end
|
73
77
|
|
74
78
|
desc 'git_pull', 'Automatically pulls in changes in your config_files repo'
|
@@ -93,9 +93,15 @@ module VpsCli
|
|
93
93
|
def ssh_key_exist?(json_string:)
|
94
94
|
# just in case your ssh key has a comment in it
|
95
95
|
# keys pulled from github will not have comments
|
96
|
-
ssh_key = @ssh_key.
|
96
|
+
ssh_key = if @ssh_key.include?('==')
|
97
|
+
@ssh_key.split('==')[0].concat('==')
|
98
|
+
else
|
99
|
+
@ssh_key
|
100
|
+
end
|
97
101
|
|
98
102
|
JSON.parse(json_string).any? do |data|
|
103
|
+
p data
|
104
|
+
p ssh_key
|
99
105
|
data['key'] == ssh_key
|
100
106
|
end
|
101
107
|
end
|
data/lib/vps_cli/install.rb
CHANGED
@@ -24,6 +24,13 @@ module VpsCli
|
|
24
24
|
# Runs through multiple methods listed below
|
25
25
|
# @see #prep
|
26
26
|
# @see #packages
|
27
|
+
def self.all_install
|
28
|
+
prep
|
29
|
+
packages
|
30
|
+
install_non_apt_packages
|
31
|
+
end
|
32
|
+
|
33
|
+
# runs #all_install without the sudo apt-get packages
|
27
34
|
# @see #other_tools
|
28
35
|
# @see #neovim_support
|
29
36
|
# @see #omz_full_install
|
@@ -32,9 +39,7 @@ module VpsCli
|
|
32
39
|
# @see #plug_install_vim_neovim
|
33
40
|
# @see #install_gems
|
34
41
|
# @see add_language_servers
|
35
|
-
def self.
|
36
|
-
prep
|
37
|
-
packages
|
42
|
+
def self.install_non_apt_packages
|
38
43
|
other_tools
|
39
44
|
neovim_support
|
40
45
|
omz_full_install
|
@@ -152,14 +157,6 @@ module VpsCli
|
|
152
157
|
Rake.mkdir_p(install_path)
|
153
158
|
Rake.sh("git clone https://github.com/tmux-plugins/tpm #{install_path}")
|
154
159
|
end
|
155
|
-
# start a server but don't attach to it
|
156
|
-
Rake.sh('tmux start-server')
|
157
|
-
# create a new session but don't attach to it either
|
158
|
-
Rake.sh('tmux new-session -d')
|
159
|
-
# install the plugins
|
160
|
-
Rake.sh('~/.tmux/plugins/tpm/scripts/install_plugins.sh')
|
161
|
-
# killing the server is not required, I guess
|
162
|
-
Rake.sh('tmux kill-server')
|
163
160
|
end
|
164
161
|
|
165
162
|
# Installs all gems located in Packages::GEMS
|
data/lib/vps_cli/version.rb
CHANGED
data/lib/vps_cli.rb
CHANGED
@@ -52,36 +52,18 @@ module VpsCli
|
|
52
52
|
# The local dir is where files are copied to
|
53
53
|
attr_writer :configuration
|
54
54
|
|
55
|
-
|
56
|
-
# Take a hash due to people being able to set their own directories
|
57
|
-
# @param [Hash] Takes the hash to modify
|
58
|
-
# @return [Hash] Returns the options hash with the various options
|
59
|
-
# Possible options:
|
60
|
-
# :backup_dir
|
61
|
-
# :local_dir
|
62
|
-
# :dotfiles_dir
|
63
|
-
# :misc_files_dir
|
64
|
-
# :local_sshd_config
|
65
|
-
# :verbose
|
66
|
-
# :testing
|
67
|
-
# def create_options(opts = {})
|
68
|
-
# opts[:backup_dir] ||= BACKUP_FILES_DIR
|
69
|
-
# opts[:local_dir] ||= Dir.home
|
70
|
-
# opts[:dotfiles_dir] ||= DOTFILES_DIR
|
71
|
-
# opts[:misc_files_dir] ||= MISC_FILES_DIR
|
72
|
-
# opts[:local_sshd_config] ||= '/etc/ssh/sshd_config'
|
73
|
-
|
74
|
-
# opts[:verbose] = false if opts[:verbose].nil?
|
75
|
-
# opts[:interactive] = true if opts[:interactive].nil?
|
76
|
-
|
77
|
-
# opts
|
78
|
-
# end
|
79
|
-
|
80
|
-
def full_install(options = {})
|
55
|
+
def full_install
|
81
56
|
VpsCli::Setup.full
|
82
57
|
VpsCli::Install.full
|
83
|
-
VpsCli::Access.provide_credentials
|
84
|
-
VpsCli::Copy.all
|
58
|
+
VpsCli::Access.provide_credentials
|
59
|
+
VpsCli::Copy.all
|
60
|
+
end
|
61
|
+
|
62
|
+
def print_errors
|
63
|
+
VpsCli.errors.each do |error|
|
64
|
+
puts error.message if error.responds_to?(:message)
|
65
|
+
puts error unless error.responds_to?(:message)
|
66
|
+
end
|
85
67
|
end
|
86
68
|
end
|
87
69
|
|
data/vps_cli.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.metadata['homepage_uri'] = 'https://github.com/ParamagicDev/vps_cli'
|
23
23
|
spec.metadata['source_code_uri'] = 'https://github.com/ParamagicDev/vps_cli'
|
24
|
-
spec.metadata['changelog_uri'] = 'https://github.com/ParamagicDev/vps_cli'
|
24
|
+
spec.metadata['changelog_uri'] = 'https://github.com/ParamagicDev/vps_cli/CHANGELOG.md'
|
25
25
|
else
|
26
26
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
27
27
|
'public gem pushes.'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vps_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- paramagicdev
|
@@ -118,6 +118,7 @@ extra_rdoc_files: []
|
|
118
118
|
files:
|
119
119
|
- ".gitignore"
|
120
120
|
- ".travis.yml"
|
121
|
+
- CHANGELOG.md
|
121
122
|
- Gemfile
|
122
123
|
- LICENSE.txt
|
123
124
|
- README.md
|
@@ -152,7 +153,7 @@ metadata:
|
|
152
153
|
allowed_push_host: https://rubygems.org/
|
153
154
|
homepage_uri: https://github.com/ParamagicDev/vps_cli
|
154
155
|
source_code_uri: https://github.com/ParamagicDev/vps_cli
|
155
|
-
changelog_uri: https://github.com/ParamagicDev/vps_cli
|
156
|
+
changelog_uri: https://github.com/ParamagicDev/vps_cli/CHANGELOG.md
|
156
157
|
post_install_message:
|
157
158
|
rdoc_options: []
|
158
159
|
require_paths:
|