{"id":3399,"date":"2012-03-31T00:00:00","date_gmt":"2012-03-30T22:00:00","guid":{"rendered":"http:\/\/www.theill.com\/blog\/2012\/03\/31\/a-bash-version-of-keep_releases-known-from-capistrano-ruby-scripts\/"},"modified":"2012-03-31T00:00:00","modified_gmt":"2012-03-30T22:00:00","slug":"a-bash-version-of-keep_releases-known-from-capistrano-ruby-scripts","status":"publish","type":"post","link":"https:\/\/www.theill.com\/blog\/2012\/03\/31\/a-bash-version-of-keep_releases-known-from-capistrano-ruby-scripts\/","title":{"rendered":"A bash version of keep_releases known from Capistrano ruby scripts"},"content":{"rendered":"
Today I needed a clean up feature in my bash script similar to what’s known from Capistrano when using the “keep_releases” argument.<\/p>\n
I wasn’t able to find a simple version so I created it myself. Maybe others find it useful too so here goes<\/p>\n
releases_path=\/data\/sites\/yoursite.com\/releases # change this\nkeep_releases=5\n\nversions=`ls -xt $releases_path`\nreleases=(${versions\/\/ \/ })\n\n# check available number of versions in releases directory\nreleases_count=${#releases[@]}\n\nif [ $releases_count -le $keep_releases ]\nthen\n echo 'no old releases to clean up'\nelse\n echo keeping $keep_releases of $releases_count deployed releases\n releases=(${releases[@]:0:0} ${releases[@]:($keep_releases)})\n\n for release in \"${releases[@]}\"\n do\n path=$releases_path$release\n `rm -rf $path`\n done\nfi\n<\/code><\/pre>\nI’ve created a github gist<\/a> too. Feel free to modify it if you have a better solution.<\/p>\n","protected":false},"excerpt":{"rendered":"Today I needed a clean up feature in my bash script similar to what’s known from Capistrano when using the “keep_releases” argument. I wasn’t able to find a simple version so I created it myself. Maybe others find it useful too so here goes releases_path=\/data\/sites\/yoursite.com\/releases # change this keep_releases=5 versions=`ls -xt $releases_path` releases=(${versions\/\/ \/ }) … Continue reading A bash version of keep_releases known from Capistrano ruby scripts<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","spay_email":"","jetpack_publicize_message":""},"categories":[1],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"yoast_head":"\nA bash version of keep_releases known from Capistrano ruby scripts • Peter Theill Site<\/title>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n