Class: Fastlane::Actions::GitAddAction

Inherits:
Fastlane::Action show all
Defined in:
fastlane/lib/fastlane/actions/git_add.rb

Constant Summary

Constants inherited from Fastlane::Action

Fastlane::Action::AVAILABLE_CATEGORIES, Fastlane::Action::RETURN_TYPES

Documentation collapse

Class Method Summary collapse

Methods inherited from Fastlane::Action

action_name, author, deprecated_notes, details, lane_context, method_missing, other_action, output, return_type, sample_return_value, shell_out_should_use_bundle_exec?, step_text

Class Method Details

.authorsObject



77
78
79
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 77

def self.authors
  ["4brunu", "antondomashnev"]
end

.available_optionsObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 47

def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :path,
                                 description: "The file(s) and path(s) you want to add",
                                 type: Array,
                                 conflicting_options: [:pathspec],
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :shell_escape,
                                 description: "Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path)",
                                 type: Boolean,
                                 default_value: true,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :force,
                                 description: "Allow adding otherwise ignored files",
                                 type: Boolean,
                                 default_value: false,
                                 optional: true),
    # Deprecated
    FastlaneCore::ConfigItem.new(key: :pathspec,
                                 description: "The pathspec you want to add files from",
                                 conflicting_options: [:path],
                                 optional: true,
                                 deprecated: "Use `--path` instead")
  ]
end

.categoryObject



98
99
100
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 98

def self.category
  :source_control
end

.descriptionObject



43
44
45
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 43

def self.description
  "Directly add the given file or all files"
end

.example_codeObject



85
86
87
88
89
90
91
92
93
94
95
96
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 85

def self.example_code
  [
    'git_add',
    'git_add(path: "./version.txt")',
    'git_add(path: ["./version.txt", "./changelog.txt"])',
    'git_add(path: "./Frameworks/*", shell_escape: false)',
    'git_add(path: ["*.h", "*.m"], shell_escape: false)',
    'git_add(path: "./Frameworks/*", shell_escape: false)',
    'git_add(path: "*.txt", shell_escape: false)',
    'git_add(path: "./tmp/.keep", force: true)'
  ]
end

.is_supported?(platform) ⇒ Boolean

Returns:



81
82
83
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 81

def self.is_supported?(platform)
  true
end

.return_valueObject



73
74
75
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 73

def self.return_value
  nil
end

.run(params) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 4

def self.run(params)
  should_escape = params[:shell_escape]

  if params[:pathspec]
    paths = params[:pathspec]
    success_message = "Successfully added from \"#{paths}\" 💾."
  elsif params[:path]
    paths = params[:path].map do |p|
      shell_escape(p, should_escape)
    end.join(' ')
    success_message = "Successfully added \"#{paths}\" 💾."
  else
    paths = "."
    success_message = "Successfully added all files 💾."
  end

  force = params[:force] ? "--force" : nil

  command = [
    "git",
    "add",
    force,
    paths
  ].compact

  result = Actions.sh(command.join(" "), log: FastlaneCore::Globals.verbose?).chomp
  UI.success(success_message)
  return result
end

.shell_escape(path, should_escape) ⇒ Object



34
35
36
37
# File 'fastlane/lib/fastlane/actions/git_add.rb', line 34

def self.shell_escape(path, should_escape)
  path = path.shellescape if should_escape
  path
end