def execute
      error_preparing = prepare
      unless error_preparing.nil?
        @output.puts "Arduino force-install failed preparation: #{error_preparing}"
        return false
      end

      attempts = 0

      loop do
        if File.exist? package_file
          @output.puts "Arduino package seems to have been downloaded already" if attempts.zero?
          break
        elsif attempts >= DOWNLOAD_ATTEMPTS
          break @output.puts "After #{DOWNLOAD_ATTEMPTS} attempts, failed to download #{package_url}"
        else
          @output.print "Attempting to download Arduino package with #{downloader}"
          download
          @output.puts
        end
        attempts += 1
      end

      if File.exist? extracted_file
        @output.puts "Arduino package seems to have been extracted already"
      elsif File.exist? package_file
        @output.print "Extracting archive with #{extracter}"
        extract
        @output.puts
      end

      if File.exist? self.class.force_install_location
        @output.puts "Arduino package seems to have been installed already"
      elsif File.exist? extracted_file
        install
      else
        @output.puts "Could not find extracted archive (tried #{extracted_file})"
      end

      File.exist? self.class.force_install_location
    end
def execute
      error_preparing = prepare
      unless error_preparing.nil?
        @output.puts "Arduino force-install failed preparation: #{error_preparing}"
        return false
      end

      attempts = 0

      loop do
        if File.exist? package_file
          @output.puts "Arduino package seems to have been downloaded already" if attempts.zero?
          break
        elsif attempts >= DOWNLOAD_ATTEMPTS
          break @output.puts "After #{DOWNLOAD_ATTEMPTS} attempts, failed to download #{package_url}"
        else
          @output.print "Attempting to download Arduino package with #{downloader}"
          download
          @output.puts
        end
        attempts += 1
      end

      if File.exist? extracted_file
        @output.puts "Arduino package seems to have been extracted already"
      elsif File.exist? package_file
        @output.print "Extracting archive with #{extracter}"
        extract
        @output.puts
      end

      if File.exist? self.class.force_install_location
        @output.puts "Arduino package seems to have been installed already"
      elsif File.exist? extracted_file
        install
      else
        @output.puts "Could not find extracted archive (tried #{extracted_file})"
      end

      File.exist? self.class.force_install_location
    end
Forcibly install Arduino on linux from the web
 @return [bool] Whether the command succeeded