😊
Rubyで環境構築自動化を図る
Rubyで環境構築自動化を図る
Neovimの設定ファイルをluaで書いていると環境構築が面倒になってきました。Rubyで環境構築自動化を図りたいと想います。実行したら、すべての設定ファイルが任意のフォルダに展開されていること、その設定ファイルが要らなくなればすべて削除できることを前提に書いていきます。それでは、自動化するコード例を書きます。
設定ファイル配置版。 move.rb
# frozen_string_literal: true
require 'fileutils'
require 'rbconfig'
# Install Runner
class InstallRunner
# default encoding utf-8, change encode here.
def self.encoding_style
Encoding.default_internal = 'UTF-8'
Encoding.default_external = 'UTF-8'
end
# multi platform lua settings.
def self.run
encoding_style
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
if Dir.exist?(File.expand_path('~/チェックするフォルダPATH'))
# puts '既にフォルダがあるメッセージ'
else
FileUtils.mkdir(File.expand_path('~/作成するフォルダPATH'))
FileUtils.cp(['./コピーするファイル1', './コピーするファイル2'], File.expand_path('~/コピー先フォルダPATH'))
# puts 'コピー完了のメッセージ'
end
when /darwin|mac os/
#...
when /linux/
#...
end
end
end
begin
InstallRunner.run
rescue StandardError => e
puts e.backtrace
ensure
GC.compact
end
__END__
次は、配置した設定ファイルを消す版。 delete.rb
# frozen_string_literal: true
#!/usr/bin/ruby
require 'fileutils'
require 'rbconfig'
# UnInstall Runner.
class UnInstallRunner
# default encoding utf-8, change encode here.
def self.encoding_style
Encoding.default_internal = 'UTF-8'
Encoding.default_external = 'UTF-8'
end
def self.run
encoding_style
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
FileUtils.rm_rf(File.expand_path('~/消すフォルダPATH'))
# puts 'フォルダを消しましたのメッセージ'
when /darwin|mac os/
# ...
when /linux/
# ...
end
end
end
begin
UnInstallRunner.run
rescue StandardError => e
puts e.backtrace
ensure
GC.compact
end
__END__
このように、配置と削除版を作っておけばその都度、Linuxコマンドを駆使する必要はなくなります。rubyファイルを実行するだけで自動的に環境が作れます。それはマルチプラットフォームで対応できるので、時短になります。私は、Neovimを使うときになるべく環境構築に時間をかけないようにしています。設定は、プラグインの更新時見直し→元の設定削除→新しい設定を反映を繰り返しています。※ Neovimだけでなく設定が必要なテキストエディタが対象です。
どうせなら、コーディングやテストに時間をかけたいので、テキストエディタの設定で悩みたくないですね。
Discussion