update_fastlane

default_platform(:ios)

platform :ios do
  lane :testflight_prune_dry do
    clean_testflight_testers(days_of_inactivity:45, dry_run: true)
  end

  # Specify a custom number for what's "inactive"
  lane :testflight_prune do
    clean_testflight_testers(days_of_inactivity: 45) # 120 days, so about 4 months
  end

  lane :update_version do |options|
    options[:plist_path] = '../osu.iOS/Info.plist'
    app_version(options)
  end

  desc 'Deploy to testflight'
  lane :beta do |options|
    update_version(options)

    provision(
      type: 'appstore'
    )

    build(
      build_configuration: 'Release', 
      build_platform: 'iPhone'
    )

    client = HTTPClient.new
    changelog = client.get_content 'https://gist.githubusercontent.com/peppy/ab89c29dcc0dce95f39eb218e8fad197/raw'
    changelog.gsub!('$BUILD_ID', options[:build])

    pilot(
      wait_processing_interval: 1800,
      changelog: changelog,
      ipa: './osu.iOS/bin/iPhone/Release/osu.iOS.ipa'
    )
  end

  desc 'Compile the project'
  lane :build do
    nuget_restore(
      project_path: 'osu.iOS.sln'
    )

    souyuz(
      platform: "ios",
      build_target: "osu_iOS",
      plist_path: "../osu.iOS/Info.plist"
    )
  end

  desc 'Install provisioning profiles using match'
  lane :provision do |options|
    if Helper.is_ci?
      options[:readonly] = true
    end

    match(options)
  end
end