Sha256: 0a7364794a0bb77e3720868793672b2cdd2121a052c4f5094044ca4b3b5b87ea

Contents?: true

Size: 1.88 KB

Versions: 21

Compression:

Stored size: 1.88 KB

Contents

module Fastlane
  module Actions
    class PemAction < Action
      def self.run(params)
        require 'pem'
        require 'pem/options'
        require 'pem/manager'

        begin
          FastlaneCore::UpdateChecker.start_looking_for_update('pem') unless Helper.is_test?

          success_block = params[:new_profile]

          PEM.config = params

          if Helper.is_test?
            profile_path = './test.pem'
          else
            profile_path = PEM::Manager.start
          end

          if profile_path
            success_block.call(File.expand_path(profile_path)) if success_block
          end
        ensure
          FastlaneCore::UpdateChecker.show_update_status('pem', PEM::VERSION)
        end
      end

      def self.description
        "Makes sure a valid push profile is active and creates a new one if needed"
      end

      def self.author
        "KrauseFx"
      end

      def self.details
        [
          "Additionally to the available options, you can also specify a block that only gets executed if a new",
          "profile was created. You can use it to upload the new profile to your server.",
          "Use it like this: ",
          "pem(",
          "  new_profile: Proc.new do ",
          "    # your upload code",
          "  end",
          ")"
        ].join("\n")
      end

      def self.available_options
        require 'pem'
        require 'pem/options'

        unless @options
          @options = PEM::Options.available_options
          @options << FastlaneCore::ConfigItem.new(key: :new_profile,
                                       description: "Block that is called if there is a new profile", 
                                       optional: true,
                                       is_string: false)
        end
        @options
      end

      def self.is_supported?(platform)
        platform == :ios
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
fastlane-1.20.0 lib/fastlane/actions/pem.rb
fastlane-1.19.0 lib/fastlane/actions/pem.rb
fastlane-1.18.0 lib/fastlane/actions/pem.rb
fastlane-1.17.1 lib/fastlane/actions/pem.rb
fastlane-1.17.0 lib/fastlane/actions/pem.rb
fastlane-1.16.0 lib/fastlane/actions/pem.rb
fastlane-1.15.0 lib/fastlane/actions/pem.rb
fastlane-1.14.1 lib/fastlane/actions/pem.rb
fastlane-1.14.0 lib/fastlane/actions/pem.rb
fastlane-1.13.1 lib/fastlane/actions/pem.rb
fastlane-1.13.0 lib/fastlane/actions/pem.rb
fastlane-1.12.0 lib/fastlane/actions/pem.rb
fastlane-1.11.0 lib/fastlane/actions/pem.rb
fastlane-1.10.0 lib/fastlane/actions/pem.rb
fastlane-1.9.0 lib/fastlane/actions/pem.rb
fastlane-1.8.0 lib/fastlane/actions/pem.rb
fastlane-1.7.3 lib/fastlane/actions/pem.rb
fastlane-1.7.2 lib/fastlane/actions/pem.rb
fastlane-1.7.1 lib/fastlane/actions/pem.rb
fastlane-1.7.0 lib/fastlane/actions/pem.rb