autorake 2.0 → 2.1

Sign up to get free protection for your applications and to get access to all the features.
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: []