From 9291b2df89d9881680f35a7350185e9ac2c4c5bb Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Wed, 13 Apr 2016 21:18:20 +0300
Subject: [PATCH] - Finished Vagrant and Docker cleanup and update scripts. -
 Added directory to PATH.

---
 .bashrc                                |  2 +-
 Documents/Shore/cleanup/docker-clean   |  8 ++++----
 Documents/Shore/cleanup/docker-update  | 15 +++++----------
 Documents/Shore/cleanup/vagrant-clean  | 23 ++++++++++++-----------
 Documents/Shore/cleanup/vagrant-update | 22 +++++++++++++++++-----
 5 files changed, 39 insertions(+), 31 deletions(-)

diff --git a/.bashrc b/.bashrc
index e68114d..6fb5070 100644
--- a/.bashrc
+++ b/.bashrc
@@ -36,7 +36,7 @@ fi
 export REPREPRO_BASE_DIR=$HOME/Documents/Shore/debian-repository
 export EDITOR=vim
 export GOPATH=$HOME/Documents/Golang
-export PATH=$PATH:$GOPATH/bin:/usr/lib/go/bin/
+export PATH=$PATH:$GOPATH/bin:/usr/lib/go/bin/:$HOME/Documents/Shore/cleanup
 export PYTHONSTARTUP=~/.pythonstartup
 alias ll='ls -lha'
 alias la='ls -A'
diff --git a/Documents/Shore/cleanup/docker-clean b/Documents/Shore/cleanup/docker-clean
index 5e209f1..d445fd6 100755
--- a/Documents/Shore/cleanup/docker-clean
+++ b/Documents/Shore/cleanup/docker-clean
@@ -1,4 +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)
+#!/bin/sh
+docker rm $(docker ps --quiet --filter=status=exited) || true
+docker rm $(docker ps --quiet --filter=status=created) || true
+docker rmi $(docker images --quiet --filter=dangling=true) || true
diff --git a/Documents/Shore/cleanup/docker-update b/Documents/Shore/cleanup/docker-update
index 935af38..acefcfd 100755
--- a/Documents/Shore/cleanup/docker-update
+++ b/Documents/Shore/cleanup/docker-update
@@ -1,10 +1,5 @@
-#!/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)
+#!/bin/sh -e
+for image in $(docker images | awk '$1!="<none>" && NR>1 {printf("%s:%s\n", $1, $2)}')
+do
+    docker pull $image || echo "Skipping..."
+done
diff --git a/Documents/Shore/cleanup/vagrant-clean b/Documents/Shore/cleanup/vagrant-clean
index 71411a0..c3f77c2 100755
--- a/Documents/Shore/cleanup/vagrant-clean
+++ b/Documents/Shore/cleanup/vagrant-clean
@@ -3,18 +3,19 @@
 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]
+    box = parse('\x1b[0m{name:^} ({provider}, {version})\x1b[0m', line)
+    if box['name'] in boxes:
+        if box['provider'] in boxes[box['name']]:
+            boxes[box['name']][box['provider']].append(box['version'])
+        else:
+            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.
+        boxes[box['name']] = {box['provider']: [ box['version'] ]}
+for box in boxes:
+    for provider in boxes[box]:
+        for version in boxes[box][provider][:-1]:
             vagrant.box('remove', '--provider', provider, '--box-version',
-                        version)
+                        version, box)
diff --git a/Documents/Shore/cleanup/vagrant-update b/Documents/Shore/cleanup/vagrant-update
index 1856485..0fe3615 100755
--- a/Documents/Shore/cleanup/vagrant-update
+++ b/Documents/Shore/cleanup/vagrant-update
@@ -1,5 +1,17 @@
-#!/bin/sh -e
-for box in $(vagrant box list | awk '{print $1}')
-do
-    vagrant box add $box --provider virtualbox
-done
+#!/usr/bin/env python
+
+from sh import vagrant
+from parse import parse
+
+
+boxes = {}
+for line in vagrant.box('list'):
+    box = parse('\x1b[0m{name:^} ({provider}, {version})\x1b[0m', line)
+    if box['name'] in boxes:
+        if not box['provider'] in boxes[box['name']]:
+            boxes[ box['name'] ].append(box['provider'])
+    else:
+        boxes[box['name']] = [ box['provider'] ]
+for box in boxes:
+    for provider in boxes[box]:
+        vagrant.box('update', '--provider', provider, '--box', box)
-- 
GitLab