fastlane-plugin-android_versioning_kts 0.2.0 → 0.3.0
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.
- 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
|