vagrant-guests-clearlinux 1.1.2 → 1.1.3
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b9d8c743e3f93bfb55681f1e0ec2a6f310b9ff1b272b45b6ea6f61ad2bf288a
|
4
|
+
data.tar.gz: 4999fa0b253f5ef51dadcab9ae46b817aefd40989ce2acf33534d52de98887a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d95b74340a5f14029d16dcbe70a09ecef94d40abb04dcac0ca409c0c956600d6f689c81a5d34bf390e681710a837e2ba9e7bd01f9f77d4788faaf9f413c2bdd
|
7
|
+
data.tar.gz: 14213d4c582e24ce1c822747789d524c2c1af2115e9bcf26c1048a120ad57aca1152be12bf358329aa838a6ea3586e6d0c8ec2f450a396b02af060406b3790db
|
data/README.md
CHANGED
@@ -11,32 +11,45 @@ Currently the plugin exposes the following *guest*
|
|
11
11
|
- **[NFS](https://www.vagrantup.com/docs/synced-folders/nfs.html)**
|
12
12
|
|
13
13
|
Beyond adding proper **[Clear Linux](https://clearlinux.org)** *guest* support to **Vagrant** this
|
14
|
-
plugin also comes bundled
|
15
|
-
|
14
|
+
plugin also comes bundled two additional **[provisioners](https://www.vagrantup.com/docs/provisioning/)**:
|
15
|
+
|
16
|
+
- a simple **[provisioner](https://www.vagrantup.com/docs/provisioning/)** that
|
17
|
+
enable basics
|
16
18
|
**[swupd](https://clearlinux.org/documentation/clear-linux/guides/maintenance/swupd-guide)**
|
17
19
|
operations straight from the `Vagrantfile`:
|
18
20
|
|
19
|
-
- adding one or more **[bundles](https://clearlinux.org/documentation/clear-linux/reference/bundles)**
|
21
|
+
- adding one or more **[bundles](https://clearlinux.org/documentation/clear-linux/reference/bundles)**
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
```ruby
|
24
|
+
config.vm.provision :bundle_add, bundles: 'wireshark'
|
25
|
+
# alternatively ... functionally equivalent to above
|
26
|
+
# config.vm.provision :bundle_add do |p|
|
27
|
+
# p.bundles = 'wireshark'
|
28
|
+
# end
|
29
|
+
```
|
30
|
+
|
31
|
+
- removing one or more **[bundles](https://clearlinux.org/documentation/clear-linux/reference/bundles)**
|
28
32
|
|
29
|
-
|
33
|
+
```ruby
|
34
|
+
# assuming it was installed already ...
|
35
|
+
config.vm.provision :bundle_remove, bundles: [ 'wireshark', 'nmap' ]
|
36
|
+
# alternatively ... functionally equivalent to above
|
37
|
+
# config.vm.provision :bundle_remove do |p|
|
38
|
+
# p.bundles = ['wireshark', 'nmap']
|
39
|
+
# end
|
40
|
+
```
|
41
|
+
|
42
|
+
- a provisioner to set the desired [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
43
|
+
|
44
|
+
Given that the available ClearLinux boxes ship with a default timezone set unlikely
|
45
|
+
to suit everyone (Author's one `Portugal` *aka* `Europe/Lisbon`) here's how to programatically your own straight from the `Vagrantfile`:
|
30
46
|
|
31
47
|
```ruby
|
32
|
-
|
33
|
-
config.vm.provision :bundle_remove, bundles: [ 'wireshark', 'nmap' ]
|
34
|
-
# alternatively ... functionally equivalent to above
|
35
|
-
# config.vm.provision :bundle_remove do |p|
|
36
|
-
# p.bundles = ['wireshark', 'nmap']
|
37
|
-
# end
|
48
|
+
config.vm.provision :set_timezone, timezone: 'Asia/Dili'
|
38
49
|
```
|
39
50
|
|
51
|
+
> `Vagrant` loading will abort if the provided timezone is invalid
|
52
|
+
|
40
53
|
## Compatible Vagrant boxes
|
41
54
|
|
42
55
|
The **Clear Linux** Vagrant **[boxes](https://app.vagrantup.com/AntonioMeireles/boxes/ClearLinux)** come
|
@@ -17,6 +17,10 @@ module VagrantPlugins
|
|
17
17
|
require_relative 'provisioner'
|
18
18
|
BundlesConfig
|
19
19
|
end
|
20
|
+
config(:set_timezone, :provisioner) do
|
21
|
+
require_relative 'provisioner'
|
22
|
+
TimezoneConfig
|
23
|
+
end
|
20
24
|
|
21
25
|
provisioner(:bundle_add) do
|
22
26
|
require_relative 'provisioner'
|
@@ -28,6 +32,10 @@ module VagrantPlugins
|
|
28
32
|
BundleRemoveProvisioner
|
29
33
|
end
|
30
34
|
|
35
|
+
provisioner(:set_timezone) do
|
36
|
+
require_relative 'provisioner'
|
37
|
+
TimezoneProvisioner
|
38
|
+
end
|
31
39
|
guest('clearlinux', 'linux') do
|
32
40
|
require_relative 'guest'
|
33
41
|
Guest
|
@@ -2,6 +2,7 @@
|
|
2
2
|
# Copyright (c) 2019 António Meireles. All Rights Reserved.
|
3
3
|
|
4
4
|
require 'vagrant'
|
5
|
+
require 'tzinfo'
|
5
6
|
|
6
7
|
module VagrantPlugins
|
7
8
|
module GuestClearLinux
|
@@ -26,6 +27,51 @@ module VagrantPlugins
|
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
30
|
+
class TimezoneConfig < Vagrant.plugin('2', :config)
|
31
|
+
attr_accessor :timezone
|
32
|
+
|
33
|
+
def initialize
|
34
|
+
super
|
35
|
+
@timezone = UNSET_VALUE
|
36
|
+
end
|
37
|
+
|
38
|
+
def finalize!
|
39
|
+
super
|
40
|
+
@timezone = '' if @timezone == UNSET_VALUE
|
41
|
+
end
|
42
|
+
|
43
|
+
def validate(machine)
|
44
|
+
errors = _detected_errors
|
45
|
+
|
46
|
+
TZInfo::Timezone.get(timezone)
|
47
|
+
{ "vm.provision.set_timezone:" => errors }
|
48
|
+
rescue TZInfo::InvalidTimezoneIdentifier
|
49
|
+
errors << "Invalid (user provided) timezone: '#{timezone}', Aborting!"
|
50
|
+
|
51
|
+
{ "vm.provision.set_timezone:" => errors }
|
52
|
+
end
|
53
|
+
|
54
|
+
def timezone=(timezone)
|
55
|
+
@timezone = timezone
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class TimezoneProvisioner < Vagrant.plugin('2', :provisioner)
|
60
|
+
def provision
|
61
|
+
@machine.ui.detail("setting (user provided) timezone to '#{@config.timezone}'")
|
62
|
+
@machine.communicate.sudo("timedatectl set-timezone #{@config.timezone}") do |type, data|
|
63
|
+
if [:stderr, :stdout].include?(type)
|
64
|
+
color = type == :stdout ? :green : :red
|
65
|
+
|
66
|
+
options = {}
|
67
|
+
options[:color] = color
|
68
|
+
|
69
|
+
@machine.ui.detail(data.chomp, options)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
29
75
|
class BundleAddProvisioner < Vagrant.plugin('2', :provisioner)
|
30
76
|
def provision
|
31
77
|
@machine.ui.detail("installing the following bundle(s): '#{@config.bundles}'")
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
-
# Copyright (c) 2018 António Meireles. All Rights Reserved.
|
2
|
+
# Copyright (c) 2018-2019 António Meireles. All Rights Reserved.
|
3
3
|
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
4
4
|
require 'vagrant-guests-clearlinux/version'
|
5
5
|
|
@@ -21,6 +21,9 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_development_dependency 'rspec-mocks', '~> 3.5.0'
|
22
22
|
s.add_development_dependency 'rubocop'
|
23
23
|
|
24
|
+
s.add_dependency 'tzinfo'
|
25
|
+
s.add_dependency 'tzinfo-data'
|
26
|
+
|
24
27
|
s.files = `git ls-files`.split($RS)
|
25
28
|
s.executables = s.files.grep(/^bin/) { |f| File.basename(f) }
|
26
29
|
s.test_files = s.files.grep(/^(test|spec|features)/)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-guests-clearlinux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- António Meireles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: tzinfo
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: tzinfo-data
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: Enables Vagrant to manage Clear Linux guests.
|
98
126
|
email: antonio.meireles@reformi.st
|
99
127
|
executables: []
|