«前の日記(2009-09-06(Sun)) 最新 次の日記(2009-09-20(Sun))» 編集

これ日記なん?


2009-09-13(Sun) [長年日記]

_ [Hiki] bzr対応

最近はbzrなので、hikiを対応させてみた。一応、ubuntu(hardy), windowsでテスト済み。使い方は他のと同じ。

# 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
view raw bzr.rb hosted with ❤ by GitHub
svn.rb, git.rb, hg.rb からかなりもらってきているのだけど、Copyright表示はこれでよかったんかな?

_ [ESXi]パッチ当て

ふと気になってみてみたら、かなり古い模様。なので、以下の手順でアップグレード

  • vSphere Host Update Utility 4.0 をインストールしてなかったので、追加インストール...をしようとしたら選択肢が削除だけ(うが)。クライアントを再インストール。
  • vSphere Host Update Utility 4.0を起動すると、既に認識されていたので「パッチのスキャン」を押下げ。
  • おおっとここで仮想マシンを全部サスペンドしておく。この後再起動になるし。念のため、メンテナンスモードにもしとく。
  • パッチ選択画面が出るので、そのまま実行
  • しばし待つ...
    • 今回は45%くらいでかたまったんちゃうんけ?というくらい待ったので気を長く持つこと。あやうく強制終了しちゃうところだった。
  • hostが再起動
  • 仮想マシンのサスペンド解除して無事終了ー。