class Fastlane::Actions::SighAction

def self.author

def self.author
  "KrauseFx"
end

def self.available_options

def self.available_options
  require 'sigh'
  require 'sigh/options'
  Sigh::Options.available_options
end

def self.description

def self.description
  "Generates a provisioning profile. Stores the profile in the current folder"
end

def self.is_supported?(platform)

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

def self.return_value

def self.return_value
  "The UDID of the profile sigh just fetched/generated"
end

def self.run(values)

def self.run(values)
  require 'sigh'
  require 'sigh/options'
  require 'sigh/manager'
  require 'credentials_manager/appfile_config'
  begin
    FastlaneCore::UpdateChecker.start_looking_for_update('sigh') unless Helper.is_test?
    Sigh.config = values # we already have the finished config
    path = Sigh::Manager.start
    Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] = path # absolute path
    Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] ||= []
    Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] << path
    Actions.lane_context[SharedValues::SIGH_UDID] = ENV["SIGH_UDID"] if ENV["SIGH_UDID"] # The UDID of the new profile
    set_profile_type(values, ENV["SIGH_PROFILE_ENTERPRISE"])
    return ENV["SIGH_UDID"] # return the UDID of the new profile
  ensure
    FastlaneCore::UpdateChecker.show_update_status('sigh', Sigh::VERSION)
  end
end

def self.set_profile_type(values, enterprise)

def self.set_profile_type(values, enterprise)
  profile_type = "app-store"
  profile_type = "ad-hoc" if values[:adhoc]
  profile_type = "development" if values[:development]
  profile_type = "enterprise" if enterprise
  Helper.log.info "Setting Provisioning Profile type to '#{profile_type}'"
  Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
end