falkorlib 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98c462c237a49684f2aebb25a3ead3f6a83c1ed6
4
- data.tar.gz: c8c24c9e37728bfdf99f1fbcb51f7d87ccbe7e64
3
+ metadata.gz: 9f187f26ec15f9da96207f2fb50947bf26ef74bf
4
+ data.tar.gz: dd8d820d7c2d5e5049a9a484c2c7c27beb8eab62
5
5
  SHA512:
6
- metadata.gz: 36126336adf06eef2be266a4e07ef8fbe6a872a6bc90af032a4f17d90908a89ab75234288c9e78be45acf69e41b9b9df6b9f0e423824bed22198bc2c87e2c6b8
7
- data.tar.gz: 91587779a881a63bb07e16c4c093de1ff6eb6b3f036d38e2eca0869f6b4e8b9ff89ea623cb1f2741535ef784706a88ffd7ad4f6a4b3c7b0d2c43f4c7be338039
6
+ metadata.gz: 812f7332aa6c7e44664f0dfe36c860f92d7f1fd33aa4c26fb87b96697bc45b553fae3d3e331deab657b1c771e2439614793dd416de758bd92a232cc1c8db07ef
7
+ data.tar.gz: 33618ec578e4dcf88fe9f61247c163b4622dd761e3c08155fb900a4cf659f360443b59cb01ecad0ee0c281512a8e92a1da5e7b845de9aa6f936119e03835a087
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- falkorlib (0.4.4)
4
+ falkorlib (0.4.5)
5
5
  artii (>= 2.1)
6
6
  awesome_print (~> 1.2)
7
7
  configatron (~> 3.2)
8
8
  deep_merge (~> 1.0.1)
9
9
  diffy (>= 3.0)
10
+ facter (~> 2.4.1)
10
11
  git_remote_branch (~> 0)
11
12
  json (~> 1.8)
12
13
  license-generator (~> 0)
@@ -19,6 +20,7 @@ PATH
19
20
  GEM
20
21
  remote: http://rubygems.org/
21
22
  specs:
23
+ CFPropertyList (2.2.8)
22
24
  addressable (2.3.6)
23
25
  artii (2.1.1)
24
26
  awesome_print (1.6.1)
@@ -33,6 +35,8 @@ GEM
33
35
  docile (1.1.5)
34
36
  ethon (0.7.0)
35
37
  ffi (>= 1.3.0)
38
+ facter (2.4.1)
39
+ CFPropertyList (~> 2.2.6)
36
40
  faraday (0.9.0)
37
41
  multipart-post (>= 1.2, < 3)
38
42
  faraday_middleware (0.9.1)
@@ -87,7 +91,7 @@ GEM
87
91
  term-ansicolor (1.3.0)
88
92
  tins (~> 1.0)
89
93
  thor (0.19.1)
90
- tins (1.3.3)
94
+ tins (1.3.5)
91
95
  travis (1.6.14)
92
96
  addressable (~> 2.3)
93
97
  backports
@@ -135,8 +135,10 @@ Gem::Specification.new do |s|
135
135
  s.add_runtime_dependency("deep_merge", '~> 1.0.1')
136
136
  s.add_runtime_dependency("diffy", '>= 3.0')
137
137
  s.add_runtime_dependency("logger", '>= 1.2.8')
138
- s.add_runtime_dependency("thor", '>= 0.19')
139
- s.add_runtime_dependency("artii", '>= 2.1')
138
+ s.add_runtime_dependency("thor", '>= 0.19')
139
+ s.add_runtime_dependency("artii", '>= 2.1')
140
+ s.add_runtime_dependency("facter", '~> 2.4.1')
141
+
140
142
  #s.add_runtime_dependency("mercenary", '>= 0.3.5')
141
143
 
142
144
  #
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Lun 2015-03-09 17:07 svarrette>
3
+ # Time-stamp: <Dim 2015-03-29 22:25 svarrette>
4
4
  ################################################################################
5
5
  # Interface for the main Bootstrapping operations
6
6
  #
@@ -9,6 +9,7 @@ require "falkorlib"
9
9
  require "falkorlib/common"
10
10
  require 'erb' # required for module generation
11
11
  require 'artii'
12
+ require 'facter'
12
13
 
13
14
  include FalkorLib::Common
14
15
 
@@ -19,6 +20,12 @@ module FalkorLib #:nodoc:
19
20
  module Bootstrap
20
21
  DEFAULTS =
21
22
  {
23
+ :motd => {
24
+ :title => "Title",
25
+ :support => "#{ENV['GIT_AUTHOR_EMAIL']}",
26
+ :width => 80,
27
+ :hostname => "`hostname -f`",
28
+ },
22
29
  :metadata => {
23
30
  :name => '',
24
31
  :type => [],
@@ -26,7 +33,7 @@ module FalkorLib #:nodoc:
26
33
  :mail => "#{ENV['GIT_AUTHOR_EMAIL']}",
27
34
  :summary => "rtfm",
28
35
  :description => '',
29
- :forge => :gforge,
36
+ :forge => '',
30
37
  :source => '',
31
38
  :project_page => '',
32
39
  :license => '',
@@ -330,6 +337,24 @@ module FalkorLib
330
337
  end # versionfile
331
338
 
332
339
 
340
+ ###### motd ######
341
+ # Generate a new motd (Message of the Day) file
342
+ # Supported options:
343
+ # * :force [boolean] force action
344
+ ##
345
+ def motd(dir = Dir.pwd, options = {})
346
+ config = FalkorLib::Config::Bootstrap::DEFAULTS[:motd].merge!(options)
347
+ path = normalized_path(dir)
348
+ erbfile = File.join( FalkorLib.templates, 'motd', 'motd.erb')
349
+ outfile = (options[:file] =~ /^\//) ? options[:file] : File.join(path, options[:file])
350
+ info "Generate a motd (Message of the Day) file '#{outfile}'"
351
+ config[:os] = Facter.value(:lsbdistdescription) if Facter.value(:lsbdistdescription)
352
+ config[:os] = "Mac " + Facter.value(:sp_os_version) if Facter.value(:sp_os_version)
353
+ write_from_erb_template(erbfile, outfile, config, options)
354
+ end # motd
355
+
356
+
357
+
333
358
  ###### readme ######
334
359
  # Bootstrap a README file for various context
335
360
  # Supported options:
@@ -373,11 +398,13 @@ module FalkorLib
373
398
  forges[:url] + "/" + forges[:login] + "/" + config[:name].downcase
374
399
  when :gitlab
375
400
  forges[:url] + "/" + forges[:name].downcase
401
+ else
402
+ ""
376
403
  end
377
-
404
+ ap config
378
405
  FalkorLib::Config::Bootstrap::DEFAULTS[:metadata].each do |k,v|
379
406
  next if v.kind_of?(Array) or [ :license, :forge ].include?( k )
380
- next if k == :name and ! name.empty?
407
+ next if k == :name and ! config[:name].empty?
381
408
  next if k == :issues_url and ! [ :github, :gitlab ].include?( config[:forge] )
382
409
  #next unless [ :name, :summary, :description ].include?(k.to_sym)
383
410
  default_answer = case k
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Lun 2015-03-09 12:09 svarrette>
3
+ # Time-stamp: <Dim 2015-03-29 17:52 svarrette>
4
4
  ################################################################################
5
5
 
6
6
  require 'thor'
@@ -102,6 +102,20 @@ RVM_LONG_DESC
102
102
  FalkorLib::Bootstrap.versionfile(path, options)
103
103
  end # versionfile
104
104
 
105
+ ###### motd ######
106
+ method_option :file, :aliases => '-f', :default => '/etc/motd', :desc => "File storing the message of the day"
107
+ method_option :width, :aliases => '-w', :default => 80, :type => :numeric, :desc => "Width for the text"
108
+ method_option :title, :aliases => '-t', :default => "Title", :desc => "Title to place in the motd"
109
+ method_option :subtitle, :desc => "Eventual subtitle to place below the title"
110
+ method_option :hostname, :aliases => '-h', :default => `hostname -f`, :desc => "Hostname"
111
+ method_option :support, :aliases => '-s', :default => "#{ENV['GIT_AUTHOR_EMAIL']}", :desc => "Support/Contact mail"
112
+ method_option :desc, :aliases => '-d', :desc => "Short Description of the host"
113
+ method_option :nodemodel,:aliases => '-n', :desc => "Node Model"
114
+ #......................................
115
+ desc "motd PATH [options]", "Initiate a 'motd' file - message of the day"
116
+ def motd(path = '.')
117
+ FalkorLib::Bootstrap.motd(path, options)
118
+ end # motd
105
119
 
106
120
  ###### readme ######
107
121
  method_option :make, :default => true,
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Lun 2015-03-09 17:02 svarrette>
3
+ # Time-stamp: <Dim 2015-03-29 18:47 svarrette>
4
4
  ################################################################################
5
5
 
6
6
  require "falkorlib"
@@ -9,6 +9,7 @@ require 'erb' # required for module generation
9
9
  require 'diffy'
10
10
  require 'json'
11
11
  require "pathname"
12
+ require "facter"
12
13
 
13
14
  module FalkorLib #:nodoc:
14
15
 
@@ -19,7 +19,7 @@ module FalkorLib #:nodoc:
19
19
  # MAJOR: Defines the major version
20
20
  # MINOR: Defines the minor version
21
21
  # PATCH: Defines the patch version
22
- MAJOR, MINOR, PATCH = 0, 4, 4
22
+ MAJOR, MINOR, PATCH = 0, 4, 5
23
23
 
24
24
  module_function
25
25
 
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # bootstrap_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Lun 2015-03-09 17:09 svarrette>
5
+ # Time-stamp: <Dim 2015-03-29 22:28 svarrette>
6
6
  #
7
7
  # @description Check the Bootstrapping operations
8
8
  #
@@ -150,6 +150,7 @@ describe FalkorLib::Bootstrap do
150
150
  t.should be_true
151
151
  FalkorLib.config[:no_interaction] = false
152
152
  end
153
+
153
154
  end # context
154
155
 
155
156
  end # each
@@ -157,14 +158,22 @@ describe FalkorLib::Bootstrap do
157
158
  ############################################
158
159
  context 'boostrap repo' do
159
160
  dir = dirs[:default]
160
-
161
161
  it '#repo' do
162
162
  FalkorLib.config[:no_interaction] = true
163
163
  FalkorLib::Bootstrap.repo(dir, { :no_interaction => true, :git_flow => false })
164
164
  FalkorLib.config[:no_interaction] = false
165
165
  end
166
-
167
166
  end
168
167
 
168
+ ############################################
169
+ context 'boostrap motd' do
170
+ dir = dirs[:default]
171
+ it "#motd" do
172
+ motdfile = File.join(dir, 'motd1')
173
+ FalkorLib::Bootstrap.motd(dir, { :file => "#{motdfile}", :no_interaction => true })
174
+ t = File.exists?(motdfile)
175
+ t.should be_true
176
+ end
177
+ end
169
178
 
170
179
  end
@@ -4,7 +4,7 @@
4
4
  [![Licence](<%= FalkorLib::Bootstrap::get_badge("license", config[:license], 'blue') %>)](<%= FalkorLib::Config::Bootstrap::DEFAULTS[:licenses][ config[:license] ][:url] %>)
5
5
  <% end %>
6
6
 
7
- Time-stamp: <Mar 2015-02-24 21:23 svarrette>
7
+ Time-stamp: <Dim 2015-03-29 14:28 svarrette>
8
8
 
9
9
  <%= ::Artii::Base.new().asciify( config[:name] ).split("\n").join("\n ") %>
10
10
  Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>>
@@ -20,6 +20,7 @@
20
20
 
21
21
  <%= config[:description] %>
22
22
 
23
+
23
24
  ## Installation
24
25
 
25
26
  This repository is hosted on [<%= FalkorLib::Config::Bootstrap::DEFAULTS[:forge][ config[:forge].to_sym ][:name] %>](<%= config[:project_page] %>).
@@ -12,7 +12,7 @@ Thus you are more than encouraged to install the [git-flow](https://github.com/n
12
12
 
13
13
  ### Releasing mechanism
14
14
 
15
- The operation consisting of releasing a new version of this repository is automated by a set of tasks within the root `<%= config[:rake] ? 'R' : 'M' %>akefile`.
15
+ The operation consisting of releasing a new version of this repository is automated by a set of tasks within the root `<%= options[:rake] ? 'R' : 'M' %>akefile`.
16
16
 
17
17
  In this context, a version number have the following format:
18
18
 
@@ -31,16 +31,16 @@ The current version number is stored in the root file `VERSION`. __/!\ NEVER MAK
31
31
 
32
32
  For more information on the version, run:
33
33
 
34
- $> <%= config[:make] ? 'make versioninfo' : 'rake version:info' %>
34
+ $> <%= options[:make] ? 'make versioninfo' : 'rake version:info' %>
35
35
 
36
36
  If a new version number such be bumped, you simply have to run:
37
37
 
38
- $> <%= config[:make] ? 'make start_bump_{major,minor,patch}' : 'rake version:{major,minor,patch}' %>
38
+ $> <%= options[:make] ? 'make start_bump_{major,minor,patch}' : 'rake version:{major,minor,patch}' %>
39
39
 
40
40
  This will start the release process for you using `git-flow`.
41
41
  Once you have finished to commit your last changes, make the release effective by running:
42
42
 
43
- $> <%= config[:make] ? 'make release' : 'rake version:release' %>
43
+ $> <%= options[:make] ? 'make release' : 'rake version:release' %>
44
44
 
45
45
  it will finish the release using `git-flow`, create the appropriate tag in the `<%= FalkorLib::GitFlow.branches(:master) %>` branch and merge all things the way they should be.
46
46
 
@@ -0,0 +1,17 @@
1
+ <%= ("=" * config[:width]) + "\n" %>
2
+ Welcome to <%= config[:hostname].chomp %>
3
+ <%= ("=" * config[:width]) + "\n" %>
4
+ <%= ::Artii::Base.new().asciify( config[:title] ).split("\n").join("\n ") %>
5
+ <% if config[:subtitle] %>
6
+ <%= ::Artii::Base.new().asciify( config[:subtitle] ).split("\n").join("\n ") %>
7
+ <% end %>
8
+ <%= ("=" * config[:width]) + "\n" %>
9
+ Hostname: <%= config[:hostname].chomp %>
10
+ OS: <%= config[:os] %>
11
+ Support: <%= config[:support] %>
12
+
13
+ === <%= config[:desc] %> ===
14
+ <%= config[:nodemodel] %> (<%= Facter.value(:physicalprocessorcount) %> <%= Facter.value(:processor0) %>)
15
+ RAM: <%= Facter.value(:memorysize) %> -- Swap size: <%= Facter.value(:swapsize) %>
16
+
17
+ <%= ("=" * config[:width]) + "\n" %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: falkorlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastien Varrette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-09 00:00:00.000000000 Z
11
+ date: 2015-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -198,6 +198,20 @@ dependencies:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: '2.1'
201
+ - !ruby/object:Gem::Dependency
202
+ name: facter
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 2.4.1
208
+ type: :runtime
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: 2.4.1
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: bundler
203
217
  requirement: !ruby/object:Gem::Requirement
@@ -400,6 +414,7 @@ files:
400
414
  - templates/Rakefile/footer_rakefile.erb
401
415
  - templates/Rakefile/header_rakefile.erb
402
416
  - templates/Rakefile/rakefile_gitflow.erb
417
+ - templates/motd/motd.erb
403
418
  - templates/puppet/modules/.gitignore
404
419
  - templates/puppet/modules/.vagrant_init.rb
405
420
  - templates/puppet/modules/Gemfile