読者です 読者をやめる 読者になる 読者になる

vagrant解読(1)

vagrant

vagrantインストールすると

/usr/bin/vagrant

っていうコマンドができている。

/usr/bin/vagrant
はvagrantをインストールしたらできる

/Vagrant/bin/vagrant

シンボリックリンク


/Vagrant/bin/vagrant
こいつ何やってんだ?

なんかGEM_PATHとか
ゴニョゴニョ設定している。

で最後にこれ実行
${RUBY_EXECUTABLE}" "${VAGRANT_EXECUTABLE}" "$@"
※"$@"はシェルスクリプトで引数格納してる変数
 vagrant -v だと -v が格納されている。
→/Vagrant/embeded/bin/ruby /Vagrant/embeded/gems/bin/vagrant "$@"

/Vagrant/embeded/gems/bin/vagrant
rubyでなんか書いてる

 #!/vagrant-installer/staging/embedded/bin/ruby
 #
 # This file was generated by RubyGems.
 #
 # The application 'vagrant' is installed as part of a gem, and
 # this file is here to facilitate running it.
 #

require 'rubygems'
#→gemのライブラリー使う為に宣言

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/
    version = $1
    ARGV.shift
  end
end
#→引数をバイナリにencodeing

gem 'vagrant', version
#→gemにvagrantがあるかどうか?true返す

load Gem.bin_path('vagrant', 'vagrant', version)
#→load /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/bin/vagrant

<||

あー、ruby読むの時間かかるー。
早く慣れたい。