automatorで、ドロップされたフォルダを暗号化zipしてパスワードをコピーするアプリつくった
「暗号化zipで保存してメールで送り、次のメールでパスワードを送る」というよく分からない習慣がありとてもメンドくさいので、自動化したかった。「automatorで選択されたファイル一覧をARGVに受け取ったりしてシェルスクリプトとかrubyでいろいろ書きたいな」と思ってたら、先輩 (@chephes) に「できるよ!」って教えてもらったので作った。
def getRandomString (length = 10) source = ("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a key = "" length.times{ key += source[rand(source.size)].to_s } return key end password = getRandomString if ARGV.length == 1 path = ARGV[0] path_a = path.split('/') filename = path_a.pop; dir = path_a.join('/') `cd #{dir}; zip -rvP #{password} #{filename}.zip "#{filename}" -x .DS_Store __MACOSX` puts password else end
複数ファイルを渡されたときはなにもしていない。同じ作り方でサービスにもできる (右クリックで圧縮)。