From dfda91baea963794a85e6fa07711e28bdde6f5f2 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Tue, 12 Apr 2016 20:49:55 +0300
Subject: [PATCH] - Create seperate scripts for upgrading and cleanup of Docker
 images and Vagrant   boxes (WIP). - Removed docker function, replaces by
 specific sciprts.

---
 .bashrc                                | 14 --------------
 Documents/Shore/cleanup/docker-clean   |  4 ++++
 Documents/Shore/cleanup/docker-update  | 10 ++++++++++
 Documents/Shore/cleanup/vagrant-clean  | 20 ++++++++++++++++++++
 Documents/Shore/cleanup/vagrant-update |  5 +++++
 5 files changed, 39 insertions(+), 14 deletions(-)
 create mode 100755 Documents/Shore/cleanup/docker-clean
 create mode 100755 Documents/Shore/cleanup/docker-update
 create mode 100755 Documents/Shore/cleanup/vagrant-clean
 create mode 100755 Documents/Shore/cleanup/vagrant-update

diff --git a/.bashrc b/.bashrc
index f16fae6..e68114d 100644
--- a/.bashrc
+++ b/.bashrc
@@ -66,18 +66,4 @@ gen-csr () {
     openssl req -new -newkey rsa:4096 -nodes -out $1.csr -keyout $1.key
 }
 
-docker () {
-    local docker_exec="$(which docker)"
-    case "$1" in
-        clean)
-            $docker_exec rm $(docker ps --quiet --filter=status=exited)
-            $docker_exec rm $(docker ps --quiet --filter=status=created)
-            $docker_exec rmi $(docker images --quiet --filter=dangling=true)
-            ;;
-        *)
-            $docker_exec $@
-            ;;
-    esac
-}
-
 . $HOME/Documents/Shore/bundle_certs/bundle_certs
diff --git a/Documents/Shore/cleanup/docker-clean b/Documents/Shore/cleanup/docker-clean
new file mode 100755
index 0000000..5e209f1
--- /dev/null
+++ b/Documents/Shore/cleanup/docker-clean
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+docker rm $(docker ps --quiet --filter=status=exited)
+docker rm $(docker ps --quiet --filter=status=created)
+docker rmi $(docker images --quiet --filter=dangling=true)
diff --git a/Documents/Shore/cleanup/docker-update b/Documents/Shore/cleanup/docker-update
new file mode 100755
index 0000000..935af38
--- /dev/null
+++ b/Documents/Shore/cleanup/docker-update
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+
+from sh import docker
+from parse import parse
+
+for line in docker.images():
+    image = parse("{REPOSITORY:^} {TAG:^} {ID:^} {CREATED:^} {SIZE:^}",
+                  line).named
+    if image.TAG == "latest":
+        docker.pull(image.REPOSITORY)
diff --git a/Documents/Shore/cleanup/vagrant-clean b/Documents/Shore/cleanup/vagrant-clean
new file mode 100755
index 0000000..71411a0
--- /dev/null
+++ b/Documents/Shore/cleanup/vagrant-clean
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+from sh import vagrant
+from parse import parse
+
+boxes = {}
+for line in vagrant.box("list"):
+    box = parse("{name:^} ({provider}, {version}", line)
+    if box.name not in boxes:
+        boxes[box.name] = {box.provider: [box.version]}
+    elif box.provider not in boxes[box.name]:
+        boxes[box.name][box.provider] = [box.version]
+    else:
+        boxes[box.name][box.provider].append(box.version)
+
+for box in boxes.keys():
+    for provider in boxes[box].keys():
+        for version in boxes[box][provider][:-1]:  # Save the latest version.
+            vagrant.box('remove', '--provider', provider, '--box-version',
+                        version)
diff --git a/Documents/Shore/cleanup/vagrant-update b/Documents/Shore/cleanup/vagrant-update
new file mode 100755
index 0000000..1856485
--- /dev/null
+++ b/Documents/Shore/cleanup/vagrant-update
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+for box in $(vagrant box list | awk '{print $1}')
+do
+    vagrant box add $box --provider virtualbox
+done
-- 
GitLab