2012-04-11 85 views
1

我創建,需要在用戶的主文件夾來存儲文件YML一個隱藏目錄中的寶石。我如何告訴gem install命令在安裝時創建這個目錄?定製紅寶石創業板安裝

我已經做了一些搜索,發現寶石文件夾中的Rake文件有一個安裝命令。我是否覆蓋這個命令?有什麼方法可以調用install命令的super,然後添加到Ruby代碼來創建缺省安裝命令運行後所需的目錄和文件?

+1

任何原因,你不能只保證你的程序啓動時,它的存在?請考慮用戶在安裝後刪除文件夾,然後運行程序的情況。 – 2012-04-11 21:37:40

+0

你提出了一個好點。我還想做具有目錄中的配置文件的,我只是希望用戶可以很方便的情況下,他們想改變一些設置。你會建議將所有這些文件(yml/config)保存在gem文件夾中嗎? – cp3 2012-04-11 21:43:18

+0

參見http://stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem – knut 2012-04-11 22:01:14

回答

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並在本地安裝包以查看會發生什麼。

編輯:

有人放在一起killergemsudo gem installisn't a good idea危險的提醒:

$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