From 4de0ee3b8fbdbcc215b0e23ef87c7a97eadadafd Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Fri, 19 Jul 2013 12:16:54 +0200 Subject: Use Tempfile instead of `sed -i` The syntax for `sed -i` is incompatible between GNU sed and BSD sed. By Tempfile from the Ruby standard library we can avoid using the `-i` option of sed. --- lib/gitlab_keys.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/gitlab_keys.rb') diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb index f554e50..dc54740 100644 --- a/lib/gitlab_keys.rb +++ b/lib/gitlab_keys.rb @@ -1,3 +1,4 @@ +require 'tempfile' require_relative 'gitlab_config' require_relative 'gitlab_logger' @@ -35,8 +36,10 @@ class GitlabKeys def rm_key $logger.info "Removing key #{@key_id}" - cmd = "sed -i '/shell #{@key_id}\"/d' #{auth_file}" - system(cmd) + Tempfile.open('authorized_keys') do |temp| + cmd = "sed '/shell #{@key_id}\"/d' #{auth_file} > #{temp.path} && mv #{temp.path} #{auth_file}" + system(cmd) + end end def clear -- cgit v1.2.1