1

YML ファイルを保存するために、ユーザーのホーム フォルダーに隠しディレクトリを必要とする gem を作成しています。インストール時にこのディレクトリを作成するように gem install コマンドに指示するにはどうすればよいですか?

少し検索したところ、gem フォルダー内の Rakefile にインストール コマンドがあることがわかりました。このコマンドをオーバーライドしますか? インストール コマンドのスーパーを呼び出し、Ruby コードに追加して、デフォルトのインストール コマンドの実行後に必要なディレクトリとファイルを作成する方法はありますか?

4

1 に答える 1

0

プロンプトなしで誰かのホーム ディレクトリで操作を実行することで特に人気があるとは思いませんが、質問に答えるために、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
于 2012-04-11T22:02:44.173 に答える