# File lib/chef/provider/user/dscl.rb, line 51 def get_free_uid(search_limit=1000) uid = nil; next_uid_guess = 200 users_uids = safe_dscl("list /Users uid") while(next_uid_guess < search_limit + 200) if users_uids =~ Regexp.new("#{Regexp.escape(next_uid_guess.to_s)}\n") next_uid_guess += 1 else uid = next_uid_guess break end end return uid || raise("uid not found. Exhausted. Searched #{search_limit} times") end