2016-09-18 4 views
0

私はフォルダ内に一連のファイルを持っています。私はいくつかの機能にフォルダ内のファイルの配列を渡したいと思います。私は、次の例 人形を持つフォルダ内のファイルの反復ループ

$files= ["C:/dir/file1", "C:/dir/file2", "C:/dir/file3", 
     "C:/dir/file4", "C:/dir/file5"] 

# function call with lambda: 
$binaries.each |String $binary| { 
    file {"/usr/bin/$binary": 
    ensure => file, 
    } 
} 

ではなく、私は、ディレクトリからすべてのファイルを読み込み、いくつかの関数に渡すことができ、手動でファイルを宣言するのを見ましたか?

+0

これはカスタムファクトでのみ実行できます。それに関して、あなたは大丈夫? –

答えて

2

Dirを使用すると、パターンを使用してすべてのファイルをフェッチできます。例:

[1] pry(main)> Dir["/Users/smefju/tmp/*"] 
=> ["/Users/smefju/tmp/a.rb", 
"/Users/smefju/tmp/asd", 
"/Users/smefju/tmp/bm.rb", 
"/Users/smefju/tmp/cert", 
"/Users/smefju/tmp/gc", 
"/Users/smefju/tmp/qq"] 
+0

上記のスニペットを人形@smefuに変換できますか? – Dev

+0

@Devあなたが今尋ねていることについてはわかりません。ハードコードされた配列をディレクトリの内容に基づいた動的な値に置き換えるには、適切なパターンで 'Dir'を使用して' $ files'に直接割り当てることができます。コードスニペットに '$ files'と' $ binaries'があることを覚えておいてください。 – smefju

+0

@StephenKingはい私はしたい...ありがとう。私は配列でファイルを手動で宣言する際に問題はありませんが、人形を介してディレクトリ内のファイルをループすることを確認しています。 – Dev

関連する問題