2009-09-13(Sun) [長年日記]
_ [Hiki] bzr対応
最近はbzrなので、hikiを対応させてみた。一応、ubuntu(hardy), windowsでテスト済み。使い方は他のと同じ。
This file contains 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
# Copyright (C) 2009, Koga Atsushi <kog{@}ceres.dti.ne.jp> | |
# You can distribute this under GPL. | |
require 'hiki/repos/default' | |
module Hiki | |
class HikifarmReposBzr < HikifarmReposBase | |
def initialize(root, data_root) | |
super | |
ENV['BZR_HOME'] = @data_root | |
# ENV['BZR_LOG'] = 'NUL' | |
# @bzr = 'c:/opt/bzr/bzr.exe' | |
ENV['BZR_LOG'] = '/dev/null' | |
@bzr = 'bzr' | |
end | |
def setup | |
Dir.chdir(@data_root) do | |
system("#{@bzr} init-repo -q .") | |
end | |
end | |
def imported?(wiki) | |
File.exists?("#{@data_root}/#{wiki}/text/.bzr") | |
end | |
def import(wiki) | |
Dir.chdir("#{@data_root}/#{wiki}/text") do | |
system("#{@bzr} init -q .") | |
system("#{@bzr} add -q .") | |
system("#{@bzr} commit -q -m \"Starting #{wiki} from #{ENV['REMOTE_ADDR']} - #{ENV['REMOTE_HOST']}\"".untaint) | |
end | |
end | |
def update(wiki) | |
Dir.chdir("#{@data_root}/#{wiki}/text") do | |
system("#{@bzr} -q up") | |
end | |
end | |
end | |
class ReposBzr < ReposBase | |
include Hiki::Util | |
def initialize(root, data_path) | |
super | |
ENV['BZR_HOME'] = @data_path | |
# ENV['BZR_LOG'] = 'NUL' | |
# @bzr = 'c:/opt/bzr/bzr.exe' | |
ENV['BZR_LOG'] = '/dev/null' | |
@bzr = 'bzr' | |
end | |
def commit(page, msg = default_msg) | |
Dir.chdir("#{@data_path}/text") do | |
system("#{@bzr} add -q #{escape(page)}".untaint) | |
system("#{@bzr} commit -q -m \"#{msg}\" #{escape(page)}".untaint) | |
end | |
end | |
def delete(page, msg = default_msg) | |
Dir.chdir("#{@data_path}/text") do | |
system("#{@bzr} rm -q #{escape(page)}".untaint) | |
system("#{@bzr} commit -q -m \"#{msg}\" #{escape(page)}".untaint) | |
end | |
end | |
def get_revision(page, revision) | |
r = "" | |
Dir.chdir("#{@data_path}/text") do | |
open("|#{@bzr} cat -r #{revision.to_i-1} #{escape(page)}".untaint) do |f| | |
r = f.read | |
end | |
end | |
r | |
end | |
def revisions(page) | |
require 'time' | |
all_logs = '' | |
revs = [] | |
Dir.chdir("#{@data_path}/text") do | |
open("|#{@bzr} log #{escape(page).untaint}") do |f| | |
all_logs = f.read | |
end | |
end | |
all_logs.split(/------------------------------------------------------------\n/).each do |log| | |
next if log == "" | |
rev = log[/^revno:\s+(\d+)$/, 1].to_i+1 | |
date = Time.parse(log[/^timestamp:\s+(.*)$/, 1]).localtime.strftime('%Y/%m/%d %H:%M:%S') | |
message = log[/^message:\s+(.*)$/, 1] | |
revs << [rev, date, "", message] | |
end | |
revs | |
end | |
end | |
end |
_ [ESXi]パッチ当て
ふと気になってみてみたら、かなり古い模様。なので、以下の手順でアップグレード
- vSphere Host Update Utility 4.0 をインストールしてなかったので、追加インストール...をしようとしたら選択肢が削除だけ(うが)。クライアントを再インストール。
- vSphere Host Update Utility 4.0を起動すると、既に認識されていたので「パッチのスキャン」を押下げ。
- おおっとここで仮想マシンを全部サスペンドしておく。この後再起動になるし。念のため、メンテナンスモードにもしとく。
- パッチ選択画面が出るので、そのまま実行
- しばし待つ...
- 今回は45%くらいでかたまったんちゃうんけ?というくらい待ったので気を長く持つこと。あやうく強制終了しちゃうところだった。
- hostが再起動
- 仮想マシンのサスペンド解除して無事終了ー。
[ツッコミを入れる]