class Snapshot::Setup

Public Class Methods

create(path, is_swift_fastfile: false, print_instructions_on_failure: false) click to toggle source

This method will take care of creating a Snapfile and other necessary files

# File snapshot/lib/snapshot/setup.rb, line 6
def self.create(path, is_swift_fastfile: false, print_instructions_on_failure: false)
  # First generate all the names & paths
  if is_swift_fastfile
    template_path = "#{Snapshot::ROOT}/lib/assets/SnapfileTemplate.swift"
    snapfile_path = File.join(path, 'Snapfile.swift')
  else
    template_path = "#{Snapshot::ROOT}/lib/assets/SnapfileTemplate"
    snapfile_path = File.join(path, 'Snapfile')
  end
  snapshot_helper_filename = "SnapshotHelperXcode8.swift"
  if Helper.xcode_at_least?("9.0")
    snapshot_helper_filename = "SnapshotHelper.swift"
  end

  if File.exist?(snapfile_path)
    if print_instructions_on_failure
      print_instructions(snapshot_helper_filename: snapshot_helper_filename, snapfile_path: snapfile_path)
      return
    else
      UI.user_error!("Snapfile already exists at path '#{snapfile_path}'. Run 'fastlane snapshot' to generate screenshots.")
    end
  end

  File.write(snapfile_path, File.read(template_path))

  # ensure that upgrade is cause when going from 8 to 9
  File.write(File.join(path, snapshot_helper_filename), File.read("#{Snapshot::ROOT}/lib/assets/#{snapshot_helper_filename}"))

  puts("✅  Successfully created #{snapshot_helper_filename} '#{File.join(path, snapshot_helper_filename)}'".green)
  puts("✅  Successfully created new Snapfile at '#{snapfile_path}'".green)
  puts("-------------------------------------------------------".yellow)
  print_instructions(snapshot_helper_filename: snapshot_helper_filename, snapfile_path: snapfile_path)
end
print_instructions(snapshot_helper_filename: nil, snapfile_path: nil) click to toggle source