Edited at

vagrant get / vagrant put作った

More than 5 years have passed since last update.

この前のやつ(すっごい早いvagrant ssh)もおまけでついてきます。

使い方は



  • vagrant put /etc/profile で VMのホームディレクトリにファイルをコピーする。


  • vagrant get /etc/profile でVMのファイルをカレントディレクトリにコピーする

(vagrant ssh などの vagrant のサブコマンドの互換性は完全には保たれていないかもしれない。こまったら/usr/bin/vagrantでなんとかなるのであまり十分にデバグしておりません)。


.bashrc

vagrant() {

require_vagrantfile() {
if [ ! -r Vagrantfile ]
then
$VAGRANT $@
return 1
fi
return
0
}

VAGRANT=`which vagrant`
CONFIG=".vagrant/vagrant_ssh_config"
ORIGINAL_DIR=`pwd`

pushd . > /dev/null
until [ -f Vagrantfile -o $PWD = '/' ]
do
cd ..
done

case "x$1" in
'xup' )
if require_vagrantfile $@ && $VAGRANT $@
then
$VAGRANT ssh-config > $CONFIG &
fi
;;
'xget' )
if require_vagrantfile $@
then
scp -F $CONFIG default:$2 $ORIGINAL_DIR/
fi
;;
'xput' )
if require_vagrantfile $@
then
if
[[ $2 == /* ]]
then
SRC=$2
else
SRC=$ORIGINAL_DIR/$2
fi
scp -F $CONFIG $SRC default:
fi
;;

'xssh' )
if require_vagrantfile $@
then
if
[ -f $CONFIG ]
then
ssh -F $CONFIG default
else
$VAGRANT ssh
fi
fi

;;
* )
popd > /dev/null
$VAGRANT $@
return
;;
esac
popd > /dev/null
}