Last active
January 6, 2025 20:05
-
-
Save alexproca/2324c60c86380b59001f to your computer and use it in GitHub Desktop.
Rename docker-machine
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
#copy this in a folder from path ex: /usr/local/bin | |
#usage: docker-machine-rename default my-default | |
# Authors | |
# | |
# alexproca initial script | |
# eurythmia sed magic | |
OLD_MACHINE_NAME=${1:-default}; | |
NEW_MACHINE_NAME=${2:-my-default-2}; | |
STORE_PATH=$(docker-machine inspect ${OLD_MACHINE_NAME} | sed -n 's/^ *"StorePath": "\(.*\)",/\1/p') | |
# 1. rename the directory of your docker-machine from docker machine store | |
mv "$STORE_PATH/machines/$OLD_MACHINE_NAME" "$STORE_PATH/machines/$NEW_MACHINE_NAME"; | |
# 2. update config.json with the new name and new path (always backup your configs) | |
sed -i.bak "s/${OLD_MACHINE_NAME}/${NEW_MACHINE_NAME}/g" ${STORE_PATH}/machines/${NEW_MACHINE_NAME}/config.json | |
# 3. rename machine in the virtual machine provider | |
vboxmanage modifyvm "$OLD_MACHINE_NAME" --name "$NEW_MACHINE_NAME" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
is better written as:
and:
is better written as:
... in finding the
$STORE_PATH
sed
can do all of the text manipulation without needing to be 'clever' or build a whole pipeline. It only matches the first StorePath because the last one in the file isn't followed by a comma, so it doesn't match anyways.The final sed does an in-place text replacement and creates a backup file prior to operating. There's really no need to use
cp
whensed
will do the work for you and you're already using it.Another note:
vboxmanage
needs to be run prior to the copy/modification ofconfig.json
, otherwisevboxmanage
has trouble finding and configuring the vm.Thanks for the Gist though, this is exactly what I was looking for!