fastlane-plugin-android_versioning_kts 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +21 -21
- data/README.md +52 -52
- data/lib/fastlane/plugin/android_versioning_kts/actions/get_value_from_build.rb +118 -118
- data/lib/fastlane/plugin/android_versioning_kts/actions/get_version_code.rb +67 -67
- data/lib/fastlane/plugin/android_versioning_kts/actions/get_version_name.rb +66 -66
- data/lib/fastlane/plugin/android_versioning_kts/actions/increment_version_code.rb +92 -92
- data/lib/fastlane/plugin/android_versioning_kts/actions/increment_version_name.rb +125 -125
- data/lib/fastlane/plugin/android_versioning_kts/actions/set_value_in_build.rb +126 -115
- data/lib/fastlane/plugin/android_versioning_kts/helper/android_versioning_kts_helper.rb +18 -18
- data/lib/fastlane/plugin/android_versioning_kts/version.rb +7 -7
- data/lib/fastlane/plugin/android_versioning_kts.rb +18 -18
- metadata +3 -3
@@ -1,92 +1,92 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'tempfile'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
module Fastlane
|
7
|
-
module Actions
|
8
|
-
module SharedValues
|
9
|
-
VERSION_CODE = :VERSION_CODE
|
10
|
-
end
|
11
|
-
|
12
|
-
class IncrementVersionCodeAction < Action
|
13
|
-
def self.run(params)
|
14
|
-
current_version_code = GetVersionCodeAction.run(params)
|
15
|
-
|
16
|
-
new_version_code =
|
17
|
-
if params[:version_code].nil?
|
18
|
-
current_version_code.to_i + 1
|
19
|
-
elsif params[:version_code] == -1
|
20
|
-
((Time.now.to_f * 1000).to_i / (60 * 1000)).to_i
|
21
|
-
else
|
22
|
-
params[:version_code].to_i
|
23
|
-
end
|
24
|
-
|
25
|
-
SetValueInBuildAction.run(
|
26
|
-
app_project_dir: params[:app_project_dir],
|
27
|
-
flavor: params[:flavor],
|
28
|
-
key: 'versionCode',
|
29
|
-
value: new_version_code
|
30
|
-
)
|
31
|
-
Actions.lane_context[SharedValues::VERSION_CODE] = new_version_code.to_s
|
32
|
-
new_version_code.to_s
|
33
|
-
end
|
34
|
-
|
35
|
-
#####################################################
|
36
|
-
# @!group Documentation
|
37
|
-
#####################################################
|
38
|
-
def self.available_options
|
39
|
-
[
|
40
|
-
FastlaneCore::ConfigItem.new(
|
41
|
-
key: :app_project_dir,
|
42
|
-
env_name: 'ANDROID_VERSIONING_APP_PROJECT_DIR',
|
43
|
-
description: 'The path to the application source folder
|
44
|
-
in the Android project (default: android/app)',
|
45
|
-
optional: true,
|
46
|
-
type: String,
|
47
|
-
default_value: 'android/app'
|
48
|
-
),
|
49
|
-
FastlaneCore::ConfigItem.new(
|
50
|
-
key: :flavor,
|
51
|
-
env_name: 'ANDROID_VERSIONING_FLAVOR',
|
52
|
-
description: 'The product flavor name (optional)',
|
53
|
-
optional: true,
|
54
|
-
type: String
|
55
|
-
),
|
56
|
-
FastlaneCore::ConfigItem.new(
|
57
|
-
key: :version_code,
|
58
|
-
env_name: 'ANDROID_VERSIONING_VERSION_CODE',
|
59
|
-
description: 'Change to a specific version (optional)',
|
60
|
-
optional: true,
|
61
|
-
type: Integer
|
62
|
-
)
|
63
|
-
]
|
64
|
-
end
|
65
|
-
|
66
|
-
def self.description
|
67
|
-
'Increment the version code of your project'
|
68
|
-
end
|
69
|
-
|
70
|
-
def self.details
|
71
|
-
[
|
72
|
-
'This action will increment the version code directly
|
73
|
-
in build.gradle.kts'
|
74
|
-
].join("\n")
|
75
|
-
end
|
76
|
-
|
77
|
-
def self.output
|
78
|
-
[
|
79
|
-
['VERSION_CODE', 'The new version code']
|
80
|
-
]
|
81
|
-
end
|
82
|
-
|
83
|
-
def self.authors
|
84
|
-
['Manabu OHTAKE']
|
85
|
-
end
|
86
|
-
|
87
|
-
def self.is_supported?(platform)
|
88
|
-
platform == :android
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Fastlane
|
7
|
+
module Actions
|
8
|
+
module SharedValues
|
9
|
+
VERSION_CODE = :VERSION_CODE
|
10
|
+
end
|
11
|
+
|
12
|
+
class IncrementVersionCodeAction < Action
|
13
|
+
def self.run(params)
|
14
|
+
current_version_code = GetVersionCodeAction.run(params)
|
15
|
+
|
16
|
+
new_version_code =
|
17
|
+
if params[:version_code].nil?
|
18
|
+
current_version_code.to_i + 1
|
19
|
+
elsif params[:version_code] == -1
|
20
|
+
((Time.now.to_f * 1000).to_i / (60 * 1000)).to_i
|
21
|
+
else
|
22
|
+
params[:version_code].to_i
|
23
|
+
end
|
24
|
+
|
25
|
+
SetValueInBuildAction.run(
|
26
|
+
app_project_dir: params[:app_project_dir],
|
27
|
+
flavor: params[:flavor],
|
28
|
+
key: 'versionCode',
|
29
|
+
value: new_version_code
|
30
|
+
)
|
31
|
+
Actions.lane_context[SharedValues::VERSION_CODE] = new_version_code.to_s
|
32
|
+
new_version_code.to_s
|
33
|
+
end
|
34
|
+
|
35
|
+
#####################################################
|
36
|
+
# @!group Documentation
|
37
|
+
#####################################################
|
38
|
+
def self.available_options
|
39
|
+
[
|
40
|
+
FastlaneCore::ConfigItem.new(
|
41
|
+
key: :app_project_dir,
|
42
|
+
env_name: 'ANDROID_VERSIONING_APP_PROJECT_DIR',
|
43
|
+
description: 'The path to the application source folder
|
44
|
+
in the Android project (default: android/app)',
|
45
|
+
optional: true,
|
46
|
+
type: String,
|
47
|
+
default_value: 'android/app'
|
48
|
+
),
|
49
|
+
FastlaneCore::ConfigItem.new(
|
50
|
+
key: :flavor,
|
51
|
+
env_name: 'ANDROID_VERSIONING_FLAVOR',
|
52
|
+
description: 'The product flavor name (optional)',
|
53
|
+
optional: true,
|
54
|
+
type: String
|
55
|
+
),
|
56
|
+
FastlaneCore::ConfigItem.new(
|
57
|
+
key: :version_code,
|
58
|
+
env_name: 'ANDROID_VERSIONING_VERSION_CODE',
|
59
|
+
description: 'Change to a specific version (optional)',
|
60
|
+
optional: true,
|
61
|
+
type: Integer
|
62
|
+
)
|
63
|
+
]
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.description
|
67
|
+
'Increment the version code of your project'
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.details
|
71
|
+
[
|
72
|
+
'This action will increment the version code directly
|
73
|
+
in build.gradle.kts'
|
74
|
+
].join("\n")
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.output
|
78
|
+
[
|
79
|
+
['VERSION_CODE', 'The new version code']
|
80
|
+
]
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.authors
|
84
|
+
['Manabu OHTAKE']
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.is_supported?(platform)
|
88
|
+
platform == :android
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -1,125 +1,125 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'tempfile'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
module Fastlane
|
7
|
-
module Actions
|
8
|
-
module SharedValues
|
9
|
-
VERSION_NAME = :VERSION_NAME
|
10
|
-
end
|
11
|
-
|
12
|
-
class IncrementVersionNameAction < Action
|
13
|
-
def self.run(params)
|
14
|
-
if params[:version_name].nil? || params[:version_name].empty?
|
15
|
-
current_version = GetVersionNameAction.run(params)
|
16
|
-
unless current_version =~ /\d+.\d+.\d+/
|
17
|
-
UI.user_error!(
|
18
|
-
"Your current version (#{current_version})
|
19
|
-
does not respect the format A.B.C"
|
20
|
-
)
|
21
|
-
end
|
22
|
-
version = current_version.split('.').map(&:to_i)
|
23
|
-
case params[:bump_type]
|
24
|
-
when 'patch'
|
25
|
-
version[2] = version[2] + 1
|
26
|
-
new_version = version.join('.')
|
27
|
-
when 'minor'
|
28
|
-
version[1] = version[1] + 1
|
29
|
-
version[2] = version[2] = 0
|
30
|
-
new_version = version.join('.')
|
31
|
-
when 'major'
|
32
|
-
version[0] = version[0] + 1
|
33
|
-
version[1] = 0
|
34
|
-
version[2] = 0
|
35
|
-
new_version = version.join('.')
|
36
|
-
end
|
37
|
-
else
|
38
|
-
new_version = params[:version_name]
|
39
|
-
end
|
40
|
-
SetValueInBuildAction.run(
|
41
|
-
app_project_dir: params[:app_project_dir],
|
42
|
-
flavor: params[:flavor],
|
43
|
-
key: 'versionName',
|
44
|
-
value: new_version
|
45
|
-
)
|
46
|
-
Actions.lane_context[SharedValues::VERSION_NAME] = new_version
|
47
|
-
new_version
|
48
|
-
end
|
49
|
-
|
50
|
-
#####################################################
|
51
|
-
# @!group Documentation
|
52
|
-
#####################################################
|
53
|
-
def self.available_options
|
54
|
-
[
|
55
|
-
FastlaneCore::ConfigItem.new(
|
56
|
-
key: :app_project_dir,
|
57
|
-
env_name: 'ANDROID_VERSIONING_APP_PROJECT_DIR',
|
58
|
-
description: 'The path to the application source folder
|
59
|
-
in the Android project (default: android/app)',
|
60
|
-
optional: true,
|
61
|
-
type: String,
|
62
|
-
default_value: 'android/app'
|
63
|
-
),
|
64
|
-
FastlaneCore::ConfigItem.new(
|
65
|
-
key: :flavor,
|
66
|
-
env_name: 'ANDROID_VERSIONING_FLAVOR',
|
67
|
-
description: 'The product flavor name (optional)',
|
68
|
-
optional: true,
|
69
|
-
type: String
|
70
|
-
),
|
71
|
-
FastlaneCore::ConfigItem.new(
|
72
|
-
key: :bump_type,
|
73
|
-
env_name: 'ANDROID_VERSIONING_BUMP_TYPE',
|
74
|
-
description: 'Change to a specific type (optional)',
|
75
|
-
optional: true,
|
76
|
-
type: String,
|
77
|
-
default_value: 'patch',
|
78
|
-
verify_block:
|
79
|
-
proc do |value|
|
80
|
-
unless %w[
|
81
|
-
patch minor major
|
82
|
-
].include? value
|
83
|
-
UI.user_error!(
|
84
|
-
"Available values are 'patch', 'minor' and 'major'"
|
85
|
-
)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
),
|
89
|
-
FastlaneCore::ConfigItem.new(
|
90
|
-
key: :version_name,
|
91
|
-
env_name: 'ANDROID_VERSIONING_VERSION_NAME',
|
92
|
-
description: 'Change to a specific version (optional)',
|
93
|
-
optional: true,
|
94
|
-
type: String
|
95
|
-
)
|
96
|
-
]
|
97
|
-
end
|
98
|
-
|
99
|
-
def self.description
|
100
|
-
'Increment the version name of your project'
|
101
|
-
end
|
102
|
-
|
103
|
-
def self.details
|
104
|
-
[
|
105
|
-
'This action will increment the version name directly
|
106
|
-
in build.gradle.kts'
|
107
|
-
].join("\n")
|
108
|
-
end
|
109
|
-
|
110
|
-
def self.output
|
111
|
-
[
|
112
|
-
['VERSION_NAME', 'The new version name']
|
113
|
-
]
|
114
|
-
end
|
115
|
-
|
116
|
-
def self.authors
|
117
|
-
['Manabu OHTAKE']
|
118
|
-
end
|
119
|
-
|
120
|
-
def self.is_supported?(platform)
|
121
|
-
platform == :android
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Fastlane
|
7
|
+
module Actions
|
8
|
+
module SharedValues
|
9
|
+
VERSION_NAME = :VERSION_NAME
|
10
|
+
end
|
11
|
+
|
12
|
+
class IncrementVersionNameAction < Action
|
13
|
+
def self.run(params)
|
14
|
+
if params[:version_name].nil? || params[:version_name].empty?
|
15
|
+
current_version = GetVersionNameAction.run(params)
|
16
|
+
unless current_version =~ /\d+.\d+.\d+/
|
17
|
+
UI.user_error!(
|
18
|
+
"Your current version (#{current_version})
|
19
|
+
does not respect the format A.B.C"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
version = current_version.split('.').map(&:to_i)
|
23
|
+
case params[:bump_type]
|
24
|
+
when 'patch'
|
25
|
+
version[2] = version[2] + 1
|
26
|
+
new_version = version.join('.')
|
27
|
+
when 'minor'
|
28
|
+
version[1] = version[1] + 1
|
29
|
+
version[2] = version[2] = 0
|
30
|
+
new_version = version.join('.')
|
31
|
+
when 'major'
|
32
|
+
version[0] = version[0] + 1
|
33
|
+
version[1] = 0
|
34
|
+
version[2] = 0
|
35
|
+
new_version = version.join('.')
|
36
|
+
end
|
37
|
+
else
|
38
|
+
new_version = params[:version_name]
|
39
|
+
end
|
40
|
+
SetValueInBuildAction.run(
|
41
|
+
app_project_dir: params[:app_project_dir],
|
42
|
+
flavor: params[:flavor],
|
43
|
+
key: 'versionName',
|
44
|
+
value: new_version
|
45
|
+
)
|
46
|
+
Actions.lane_context[SharedValues::VERSION_NAME] = new_version
|
47
|
+
new_version
|
48
|
+
end
|
49
|
+
|
50
|
+
#####################################################
|
51
|
+
# @!group Documentation
|
52
|
+
#####################################################
|
53
|
+
def self.available_options
|
54
|
+
[
|
55
|
+
FastlaneCore::ConfigItem.new(
|
56
|
+
key: :app_project_dir,
|
57
|
+
env_name: 'ANDROID_VERSIONING_APP_PROJECT_DIR',
|
58
|
+
description: 'The path to the application source folder
|
59
|
+
in the Android project (default: android/app)',
|
60
|
+
optional: true,
|
61
|
+
type: String,
|
62
|
+
default_value: 'android/app'
|
63
|
+
),
|
64
|
+
FastlaneCore::ConfigItem.new(
|
65
|
+
key: :flavor,
|
66
|
+
env_name: 'ANDROID_VERSIONING_FLAVOR',
|
67
|
+
description: 'The product flavor name (optional)',
|
68
|
+
optional: true,
|
69
|
+
type: String
|
70
|
+
),
|
71
|
+
FastlaneCore::ConfigItem.new(
|
72
|
+
key: :bump_type,
|
73
|
+
env_name: 'ANDROID_VERSIONING_BUMP_TYPE',
|
74
|
+
description: 'Change to a specific type (optional)',
|
75
|
+
optional: true,
|
76
|
+
type: String,
|
77
|
+
default_value: 'patch',
|
78
|
+
verify_block:
|
79
|
+
proc do |value|
|
80
|
+
unless %w[
|
81
|
+
patch minor major
|
82
|
+
].include? value
|
83
|
+
UI.user_error!(
|
84
|
+
"Available values are 'patch', 'minor' and 'major'"
|
85
|
+
)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
),
|
89
|
+
FastlaneCore::ConfigItem.new(
|
90
|
+
key: :version_name,
|
91
|
+
env_name: 'ANDROID_VERSIONING_VERSION_NAME',
|
92
|
+
description: 'Change to a specific version (optional)',
|
93
|
+
optional: true,
|
94
|
+
type: String
|
95
|
+
)
|
96
|
+
]
|
97
|
+
end
|
98
|
+
|
99
|
+
def self.description
|
100
|
+
'Increment the version name of your project'
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.details
|
104
|
+
[
|
105
|
+
'This action will increment the version name directly
|
106
|
+
in build.gradle.kts'
|
107
|
+
].join("\n")
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.output
|
111
|
+
[
|
112
|
+
['VERSION_NAME', 'The new version name']
|
113
|
+
]
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.authors
|
117
|
+
['Manabu OHTAKE']
|
118
|
+
end
|
119
|
+
|
120
|
+
def self.is_supported?(platform)
|
121
|
+
platform == :android
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -1,115 +1,126 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'tempfile'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
module Fastlane
|
7
|
-
module Actions
|
8
|
-
class SetValueInBuildAction < Action
|
9
|
-
def self.run(params)
|
10
|
-
app_project_dir ||= params[:app_project_dir]
|
11
|
-
regex = /
|
12
|
-
(?<key>#{params[:key]}\s*=\s*)
|
13
|
-
(?<left>['"]?)
|
14
|
-
(?<value>[a-zA-Z0-9._]*)
|
15
|
-
(?<right>['"]?)
|
16
|
-
(?<comment>.*)
|
17
|
-
/x
|
18
|
-
flavor = params[:flavor]
|
19
|
-
flavor_specified = !(flavor.nil?
|
20
|
-
regex_flavor = /[ \t]create\("#{flavor}"\)[ \t]/
|
21
|
-
found = false
|
22
|
-
product_flavors_section = false
|
23
|
-
flavor_found = false
|
24
|
-
Dir.glob("#{app_project_dir}/build.gradle.kts") do |path|
|
25
|
-
temp_file = Tempfile.new('versioning')
|
26
|
-
File.open(path, 'r') do |file|
|
27
|
-
file.each_line do |line|
|
28
|
-
if flavor_specified && !product_flavors_section
|
29
|
-
unless line.include?('productFlavors') || product_flavors_section
|
30
|
-
temp_file.puts line
|
31
|
-
next
|
32
|
-
end
|
33
|
-
product_flavors_section = true
|
34
|
-
end
|
35
|
-
|
36
|
-
if flavor_specified && !flavor_found
|
37
|
-
unless line.match(regex_flavor)
|
38
|
-
temp_file.puts line
|
39
|
-
next
|
40
|
-
end
|
41
|
-
flavor_found = true
|
42
|
-
end
|
43
|
-
|
44
|
-
unless line.match(regex) && !found
|
45
|
-
temp_file.puts line
|
46
|
-
next
|
47
|
-
end
|
48
|
-
line = line.gsub regex,
|
49
|
-
"\\k<key>\\k<left>#{params[:value]}\\k<right>\\k<comment>"
|
50
|
-
found = true
|
51
|
-
temp_file.puts line
|
52
|
-
end
|
53
|
-
file.close
|
54
|
-
end
|
55
|
-
temp_file.rewind
|
56
|
-
temp_file.close
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
description: 'The
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Fastlane
|
7
|
+
module Actions
|
8
|
+
class SetValueInBuildAction < Action
|
9
|
+
def self.run(params)
|
10
|
+
app_project_dir ||= params[:app_project_dir]
|
11
|
+
regex = /
|
12
|
+
(?<key>#{params[:key]}\s*=\s*)
|
13
|
+
(?<left>['"]?)
|
14
|
+
(?<value>[a-zA-Z0-9._]*)
|
15
|
+
(?<right>['"]?)
|
16
|
+
(?<comment>.*)
|
17
|
+
/x
|
18
|
+
flavor = params[:flavor]
|
19
|
+
flavor_specified = !(flavor.nil? || flavor.empty?)
|
20
|
+
regex_flavor = /[ \t]create\("#{flavor}"\)[ \t]/
|
21
|
+
found = false
|
22
|
+
product_flavors_section = false
|
23
|
+
flavor_found = false
|
24
|
+
Dir.glob("#{app_project_dir}/build.gradle.kts") do |path|
|
25
|
+
temp_file = Tempfile.new('versioning')
|
26
|
+
File.open(path, 'r') do |file|
|
27
|
+
file.each_line do |line|
|
28
|
+
if flavor_specified && !product_flavors_section
|
29
|
+
unless line.include?('productFlavors') || product_flavors_section
|
30
|
+
temp_file.puts line
|
31
|
+
next
|
32
|
+
end
|
33
|
+
product_flavors_section = true
|
34
|
+
end
|
35
|
+
|
36
|
+
if flavor_specified && !flavor_found
|
37
|
+
unless line.match(regex_flavor)
|
38
|
+
temp_file.puts line
|
39
|
+
next
|
40
|
+
end
|
41
|
+
flavor_found = true
|
42
|
+
end
|
43
|
+
|
44
|
+
unless line.match(regex) && !found
|
45
|
+
temp_file.puts line
|
46
|
+
next
|
47
|
+
end
|
48
|
+
line = line.gsub regex,
|
49
|
+
"\\k<key>\\k<left>#{params[:value]}\\k<right>\\k<comment>"
|
50
|
+
found = true
|
51
|
+
temp_file.puts line
|
52
|
+
end
|
53
|
+
file.close
|
54
|
+
end
|
55
|
+
temp_file.rewind
|
56
|
+
temp_file.close
|
57
|
+
|
58
|
+
begin
|
59
|
+
FileUtils.mv(temp_file.path, path)
|
60
|
+
rescue => ex
|
61
|
+
if ex.message.to_s.include? 'Operation not permitted'
|
62
|
+
FileUtils.cp(temp_file.path, path)
|
63
|
+
FileUtils.rm(temp_file.path)
|
64
|
+
else
|
65
|
+
raise ex
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
temp_file.unlink
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
#####################################################
|
74
|
+
# @!group Documentation
|
75
|
+
#####################################################
|
76
|
+
def self.available_options
|
77
|
+
[
|
78
|
+
FastlaneCore::ConfigItem.new(
|
79
|
+
key: :app_project_dir,
|
80
|
+
env_name: 'ANDROID_VERSIONING_APP_PROJECT_DIR',
|
81
|
+
description: 'The path to the application source folder
|
82
|
+
in the Android project (default: android/app)',
|
83
|
+
optional: true,
|
84
|
+
type: String,
|
85
|
+
default_value: 'android/app'
|
86
|
+
),
|
87
|
+
FastlaneCore::ConfigItem.new(
|
88
|
+
key: :flavor,
|
89
|
+
env_name: 'ANDROID_VERSIONING_FLAVOR',
|
90
|
+
description: 'The product flavor name (optional)',
|
91
|
+
optional: true,
|
92
|
+
type: String
|
93
|
+
),
|
94
|
+
FastlaneCore::ConfigItem.new(
|
95
|
+
key: :key,
|
96
|
+
description: 'The property key',
|
97
|
+
type: String
|
98
|
+
),
|
99
|
+
FastlaneCore::ConfigItem.new(
|
100
|
+
key: :value,
|
101
|
+
description: 'The property value',
|
102
|
+
type: String
|
103
|
+
)
|
104
|
+
]
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.description
|
108
|
+
'Set the value of your project'
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.details
|
112
|
+
[
|
113
|
+
'This action will set the value directly in build.gradle.kts '
|
114
|
+
].join("\n")
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.authors
|
118
|
+
['Manabu OHTAKE']
|
119
|
+
end
|
120
|
+
|
121
|
+
def self.is_supported?(platform)
|
122
|
+
platform == :android
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|