バンド練習音源をさっさと共有しませう
これ、シェルスクリプトでいいよね!
でもシェルスクリプトのループよくわかんない!
スレッド使ってCPU限界までいじめたいです!
スレッドは開けばいいってものではなくて、こういう叩き方をしたら
パフォーマンスはあまり良くない。
#! /usr/local/bin/ruby # -*- coding: utf-8 -*- #ARGVからgrob if ARGV.length == 1 path = ARGV[0].sub(/\/$/,"").to_s puts "対象ディレクトリ#{path}で処理開始" else puts "パスを指定してくれないと無理" exit end Dir.chdir path #エンコード threads = [] targwav = Dir.glob("*wav") targwav.each do |file| threads << Thread.new do `lame -b256 \"#{file}\"` end end threads.each do |t| t.join end puts "エンコード処理終了" #ファイル移動 targmp3 = Dir.glob("*mp3") serial = 0 place = "/svnrepos/musicdata/practice#{Time.now.year.to_s}#{Time.now.month.to_s}#{Time.now.day.to_s}" #ディレクトリ作っとく `mkdir -p #{place}` #mp3はcp targmp3.each do |e| Process.spawn %{cp "#{e}" "#{place}/practice#{Time.now.year.to_s}#{Time.now.month.to_s}#{Time.now.day.to_s}_#{serial}_#{e}"} serial += 1 end serial = 0 #wavはmv targwav.each do |e| Process.spawn %{mv "#{e}" "#{place}/#{Time.now.year.to_s}#{Time.now.month.to_s}#{Time.now.day.to_s}_#{serial}_#{e}"} serial += 1 end puts "ファイル移動完了\nDropBoxを開きます。" #DropBoxをブラウザ表示(バンド用のdropboxはWebのみで運用中) `open https://www.dropbox.com/home#/Public/` __END__ usage: __FILE__ ~/Desktop/ バンド練習のあと飯をくいながら練習場音源wavをsplitしたあと、 mp3変換してdropboxにuploadしたいのだけれど、 だいたいwav切り取ったぐらいでご飯が運ばれてくるので、 そこはもうある程度自動化しないと ご飯が食べれないのです。
rubyちょっとなじんできた。