dapp 0.10.3 → 0.10.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dapp/dapp/deps/base.rb +2 -2
- data/lib/dapp/dimg/build/stage/artifact_default.rb +35 -23
- data/lib/dapp/dimg/git_artifact.rb +6 -2
- data/lib/dapp/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebff6933b83298b6ecb85ea23c7a2fe1db96dea0
|
4
|
+
data.tar.gz: 92b09ea990eadd0be1ea22bbd55537d4f21ad9be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92599680d7a9da9693c5796962e6522f2548749502f7f4e74201c4b0ab734de05726f0a12e966c901caedb45f03af5ea3080ecc4b1f9de269c569774df0e7bc8
|
7
|
+
data.tar.gz: f67dd984507cd589e1dbcf845ec57783ff53195f0cea54191968aef45179ab4f9f7675bf6f8fd6c1d224ee4930d5a0c837a26796959a47fba5d51809f2fff361
|
data/lib/dapp/dapp/deps/base.rb
CHANGED
@@ -24,8 +24,8 @@ module Dapp
|
|
24
24
|
end
|
25
25
|
|
26
26
|
%w(rm rsync diff date cat
|
27
|
-
stat test sleep mkdir
|
28
|
-
install sed cp true
|
27
|
+
stat readlink test sleep mkdir
|
28
|
+
install sed cp true find
|
29
29
|
bash tar sudo).each do |cmd|
|
30
30
|
define_method("#{cmd}_bin") { "/.dapp/deps/base/#{BASE_VERSION}/bin/#{cmd}" }
|
31
31
|
end
|
@@ -30,32 +30,44 @@ module Dapp
|
|
30
30
|
|
31
31
|
# rubocop:disable Metrics/ParameterLists
|
32
32
|
def safe_cp(from, to, owner, group, include_paths = [], exclude_paths = [])
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
copy_files = proc do |from_, path_ = ''|
|
39
|
-
"if [[ -d #{File.join(from_, path_)} ]] || [[ -f #{File.join(from_, path_)} ]]; then " \
|
40
|
-
"#{dimg.dapp.find_bin} #{File.join(from_, path_)} #{excludes} -type f -exec " \
|
41
|
-
"#{dimg.dapp.bash_bin} -ec '#{dimg.dapp.install_bin} -D #{credentials} \"{}\" " \
|
42
|
-
"\"#{File.join(to, '$(echo "{}" | ' \
|
43
|
-
"#{dimg.dapp.sed_bin} -e \"s/^#{from_.gsub('/', '\\/')}\\///g\")")}\"' \\; ;" \
|
44
|
-
'fi'
|
45
|
-
end
|
33
|
+
''.tap do |cmd|
|
34
|
+
cmd << dimg.dapp.rsync_bin
|
35
|
+
cmd << ' --archive --links'
|
36
|
+
cmd << " --chown=#{owner}:#{group}" if owner or group
|
46
37
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
38
|
+
if include_paths.any?
|
39
|
+
# Если указали include_paths — это означает, что надо копировать
|
40
|
+
# только указанные пути. Поэтому exclude_paths в приоритете, т.к. в данном режиме
|
41
|
+
# exclude_paths может относится только к путям, указанным в include_paths.
|
42
|
+
# При этом случай, когда в include_paths указали более специальный путь, чем в exclude_paths,
|
43
|
+
# будет обрабатываться в пользу exclude, этот путь не скопируется.
|
44
|
+
exclude_paths.each do |p|
|
45
|
+
cmd << " --filter='-/ #{File.join(from, p)}'"
|
46
|
+
end
|
47
|
+
|
48
|
+
include_paths.each do |p|
|
49
|
+
# * На данный момент не знаем директорию или файл имел в виду пользователь,
|
50
|
+
# поэтому подставляем фильтры для обоих возможных случаев.
|
51
|
+
# * Автоматом подставляем паттерн ** для включения файлов, содержащихся в
|
52
|
+
# директории, которую пользователь указал в include_paths.
|
53
|
+
cmd << " --filter='+/ #{File.join(from, p)}'"
|
54
|
+
cmd << " --filter='+/ #{File.join(from, p, '**')}'"
|
55
|
+
end
|
55
56
|
|
56
|
-
|
57
|
-
|
57
|
+
# Все что не подошло по include — исключается
|
58
|
+
cmd << " --filter='-/ #{File.join(from, '**')}'"
|
59
|
+
else
|
60
|
+
exclude_paths.each do |p|
|
61
|
+
cmd << " --filter='-/ #{File.join(from, p)}'"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Слэш после from — это инструкция rsync'у для копирования
|
66
|
+
# содержимого директории from, а не самой директории.
|
67
|
+
cmd << " #{from}/ #{to}"
|
68
|
+
end
|
58
69
|
end
|
70
|
+
# rubocop:enable Metrics/ParameterLists
|
59
71
|
end # ArtifactDefault
|
60
72
|
end # Stage
|
61
73
|
end # Build
|
@@ -140,8 +140,12 @@ module Dapp
|
|
140
140
|
Gem::Package::TarWriter.new(f) do |tar|
|
141
141
|
diff_patches(nil, to_commit).each do |patch|
|
142
142
|
entry = patch.delta.new_file
|
143
|
-
|
144
|
-
|
143
|
+
if entry[:mode] == 40960 # symlink
|
144
|
+
tar.add_symlink slice_cwd(entry[:path]), repo.lookup_object(entry[:oid]).content, entry[:mode]
|
145
|
+
else
|
146
|
+
tar.add_file slice_cwd(entry[:path]), entry[:mode] do |tf|
|
147
|
+
tf.write repo.lookup_object(entry[:oid]).content
|
148
|
+
end
|
145
149
|
end
|
146
150
|
end
|
147
151
|
end
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -592,7 +592,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
592
592
|
requirements:
|
593
593
|
- - ">="
|
594
594
|
- !ruby/object:Gem::Version
|
595
|
-
version:
|
595
|
+
version: 2.5.0
|
596
596
|
requirements: []
|
597
597
|
rubyforge_project:
|
598
598
|
rubygems_version: 2.4.8
|