autorake 2.0 → 2.1

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.
Files changed (4) hide show
  1. checksums.yaml +15 -0
  2. data/lib/autorake.rb +49 -28
  3. data/lib/autorake/version.rb +5 -3
  4. metadata +15 -12
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDg0YjkwNDhjNmU0MGViZjYyODRmMzBkYTYwODc3MGNhNTI0MmEwOQ==
5
+ data.tar.gz: !binary |-
6
+ ZGU5Njg4NTk5NzI3MDMyM2MwNGNjMjRjMDYyNDE0ODY2NDM2MWZjZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTc4OGRkNmZjNWMwOWEwOWRiN2E0MjBhZjA4NzA3NWJkNjk1NzkxZmU2M2Fi
10
+ MWU3YjUxYTNiZDM2YmZmODg0NDVkZWZkNjNmZDBmNmI3ZTM0MTcxYTY5YTll
11
+ ODgyY2YxNGU5YjNkM2FmMDU1MmQ2YzM4MjE0NTQxOTcxYWNjYjg=
12
+ data.tar.gz: !binary |-
13
+ ZjVjM2QxNGIwM2NlZTBjYzlkYWUwNTM4ZDlkZjlmY2E0MmQ3YThmNTdjNTEx
14
+ YTgzZTg0YjA5NThjY2JlZTAyYjhjMmY4OWUwOTNlZTZjOTczYWQ2YjJmMmQ1
15
+ N2NiNTUxNmVjOGM5ZTRkNWVlMDYyN2UyMjAxNDIwNTdjOWIxYjM=
data/lib/autorake.rb CHANGED
@@ -11,7 +11,7 @@ module Autorake
11
11
 
12
12
  class <<self
13
13
  def extended obj
14
- obj.load_autorake
14
+ obj.load_autorake ENV[ "AUTORAKE_CONFIGURE"]
15
15
  Compiler.verbose = true
16
16
  end
17
17
  end
@@ -53,7 +53,9 @@ module Autorake
53
53
  task :uninstall do uninstall_targets end
54
54
  @autorake_install = []
55
55
  end
56
- @autorake_install.push [ under, files, destdir, params]
56
+ p = {}
57
+ p.update params if params
58
+ @autorake_install.push [ under, files, destdir, p]
57
59
  end
58
60
 
59
61
  def load_autorake filename = nil
@@ -66,30 +68,40 @@ module Autorake
66
68
  def install_targets
67
69
  @autorake_install.each { |under,files,destdir,params|
68
70
  File.directory? destdir or mkdir_p destdir
69
- files.each { |f| install under, f, destdir, params }
71
+ files.each { |f| install under, f, destdir, params, 0 }
70
72
  }
71
73
  end
72
74
 
73
75
  def uninstall_targets
74
- @autorake_install.reverse.each { |under,files,destdir,|
75
- files.each { |f| uninstall under, f, destdir }
76
+ @autorake_install.reverse.each { |under,files,destdir,params|
77
+ files.each { |f| uninstall under, f, destdir, params, 0 }
76
78
  }
77
79
  end
78
80
 
79
- def paths_for_install under, src, dir
81
+ def paths_for_install under, src, dir, depth
80
82
  dst = File.join dir, src
81
83
  here = under ? (File.join under, src) : src
82
- there, = File.split src
83
- there = nil if there == "."
84
+ if depth.zero? then
85
+ there, = File.split src
86
+ there = nil if there == "."
87
+ end
84
88
  yield dst, here, there
85
89
  end
86
90
 
87
- def install under, src, dir, ugm
88
- paths_for_install under, src, dir do |dst,here,there|
89
- install under, there, dir, ugm if there
91
+ def dir_entries dir
92
+ (Dir.entries dir) - %w(. ..)
93
+ end
94
+
95
+ def install under, src, dir, params, depth
96
+ paths_for_install under, src, dir, depth do |dst,here,there|
97
+ install under, there, dir, params, 0 if there
90
98
  if File.directory? here or not File.exists? here then
91
- return if File.directory? dst
92
- mkdir dst
99
+ mkdir dst unless File.directory? dst
100
+ if params[ :recursive] then
101
+ (dir_entries here).each { |e|
102
+ install under, (File.join src, e), dir, params, depth+1
103
+ }
104
+ end
93
105
  elsif File.symlink? here then
94
106
  rm dst if File.exists? dst
95
107
  rdl = File.readlink here
@@ -97,26 +109,35 @@ module Autorake
97
109
  else
98
110
  cp here, dst
99
111
  end
100
- if ugm then
101
- u, g = [ :user, :group].map { |x| y = ugm[ x] ; y unless y.empty? }
102
- chown u, g, dst if u or g
103
- m = ugm[ :mode]
104
- if m and not m.empty? then
105
- m = Integer m
106
- chmod m, dst
107
- end
108
- end
112
+ u, g = params[ :user].split ":"
113
+ g = params[ :group] || g
114
+ chown u, g, dst if u or g
115
+ m = params[ :mode]
116
+ s = params[ :umask]
117
+ m ||= s && (File.stat dst).mode & ~s & 0777
118
+ chmod m, dst if m
109
119
  end
110
120
  end
111
121
 
112
- def uninstall under, src, dir
113
- paths_for_install under, src, dir do |dst,here,there|
114
- if File.directory? here or not File.exists? here then
115
- rmdir dst rescue return
122
+ def uninstall under, src, dir, params, depth
123
+ paths_for_install under, src, dir, depth do |dst,here,there|
124
+ if params[ :recursive] then
125
+ if File.directory? dst then
126
+ (dir_entries dst).each { |e|
127
+ uninstall under, (File.join src, e), dir, params, depth+1
128
+ }
129
+ rmdir dst
130
+ elsif File.exists? dst then
131
+ rm dst
132
+ end
116
133
  else
117
- rm dst if File.exists? dst or File.symlink? dst
134
+ if File.directory? here or not File.exists? here then
135
+ rmdir dst if File.directory? dst
136
+ else
137
+ rm dst if File.exists? dst or File.symlink? dst
138
+ end
118
139
  end
119
- uninstall under, there, dir if there
140
+ uninstall under, there, dir, params, 0 if there
120
141
  end
121
142
  end
122
143
 
@@ -5,19 +5,21 @@
5
5
  module Autorake
6
6
 
7
7
  NAME = "autorake"
8
- VERSION = "2.0"
9
- SUMMARY = "Configure project before Rake build or install."
8
+ VERSION = "2.1"
9
+ SUMMARY = "Automake like project config before Rake build or install."
10
10
 
11
11
  DESCRIPTION = <<EOT
12
12
  This script allows you to write pretty mkrf_conf scripts
13
13
  with autocmd-like functionality.
14
+
15
+ The config scripts may be held short and readable.
14
16
  EOT
15
17
 
16
18
  COPYRIGHT = "(C) 2013 Bertram Scharpf"
17
19
  LICENSE = "BSD"
18
20
  AUTHOR = "Bertram Scharpf <software@bertram-scharpf.de>"
19
21
  TEAM = [ "Bertram Scharpf"]
20
- HOMEPAGE = "http://www.bertram-scharpf.de"
22
+ HOMEPAGE = "http://www.bertram-scharpf.de/software/autorake"
21
23
 
22
24
  end
23
25
 
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autorake
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.0'
5
- prerelease:
4
+ version: '2.1'
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bertram Scharpf
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-29 00:00:00.000000000 Z
11
+ date: 2013-10-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -31,6 +28,9 @@ description: ! 'This script allows you to write pretty mkrf_conf scripts
31
28
 
32
29
  with autocmd-like functionality.
33
30
 
31
+
32
+ The config scripts may be held short and readable.
33
+
34
34
  '
35
35
  email: Bertram Scharpf <software@bertram-scharpf.de>
36
36
  executables: []
@@ -62,21 +62,24 @@ files:
62
62
  - samples/justinst/plugin/yesno.vim
63
63
  - README
64
64
  - LICENSE
65
- homepage: http://www.bertram-scharpf.de
65
+ homepage: http://www.bertram-scharpf.de/software/autorake
66
66
  licenses:
67
67
  - BSD
68
+ metadata: {}
68
69
  post_install_message:
69
- rdoc_options: []
70
+ rdoc_options:
71
+ - --charset
72
+ - utf-8
73
+ - --main
74
+ - README
70
75
  require_paths:
71
76
  - lib
72
77
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
78
  requirements:
75
79
  - - ! '>='
76
80
  - !ruby/object:Gem::Version
77
81
  version: '0'
78
82
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
83
  requirements:
81
84
  - - ! '>='
82
85
  - !ruby/object:Gem::Version
@@ -84,8 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
87
  requirements:
85
88
  - Rake
86
89
  rubyforge_project: NONE
87
- rubygems_version: 1.8.25
90
+ rubygems_version: 2.0.7
88
91
  signing_key:
89
- specification_version: 3
90
- summary: Configure project before Rake build or install.
92
+ specification_version: 4
93
+ summary: Automake like project config before Rake build or install.
91
94
  test_files: []