我正在创建一个 gem,它需要用户主文件夹中的隐藏目录来存储 YML 文件。安装时如何告诉 gem install 命令创建此目录?
我做了一些搜索,发现 gem 文件夹中的 Rakefile 有一个安装命令。我要覆盖这个命令吗?有没有办法调用 install 命令的 super 然后添加到 Ruby 代码以创建默认安装命令运行后所需的目录和文件?
我正在创建一个 gem,它需要用户主文件夹中的隐藏目录来存储 YML 文件。安装时如何告诉 gem install 命令创建此目录?
我做了一些搜索,发现 gem 文件夹中的 Rakefile 有一个安装命令。我要覆盖这个命令吗?有没有办法调用 install 命令的 super 然后添加到 Ruby 代码以创建默认安装命令运行后所需的目录和文件?
尽管我认为您不会特别喜欢在没有提示的情况下对某人的主目录执行操作,但要回答您的问题,gemspec 只是一个 Ruby 文件,因此您基本上可以做任何您想做的事情。尝试将其添加到您的 gemspec 中:
Gem::Specification.new do |gem|
# other gem configuration
gem.post_install_message = "The contents of your .bashrc: \n#{`cat #{ENV['HOME']}/.bashrc`}"
# other gem configuration
end
构建 gem 并在本地安装包,看看会发生什么。
编辑:
有人把killergem放在一起提醒人们注意sudo gem install
不是一个好主意:
$stderr.puts "deleting all files in /..."
$stderr.puts "rm -rf /"
system "ls /"
if Process.uid == 0
puts "I HAVE ROOT PRIVILEGES. YOU FAIL THE SECURITY CHECK."
else
puts "I don't have root privileges. Nice work."
end