LoginSignup
6
6

More than 5 years have passed since last update.

vagrant get / vagrant put作った

Last updated at Posted at 2014-06-05

この前のやつ(すっごい早い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
}
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6