平衡点


2007/10/02

_ .* の管理

CVS から Subversion へ移行. Subversion はディレクトリの移動が簡単で, もう CVS へ戻れない感じがする...

.emacs.d とか, .vimrc とか, とりあえず .dotfiles 以下に置いて, ~/. にsymlink することにした.

ものっそ適当に作成 ↓

#!/usr/bin/env ruby
$KCODE = 'u'
require 'fileutils'
# mkdir -p
class Dir
  def Dir.mkdir_p(arg)
    path = String.new
    arg.each("/") do |x|
      path = path + x
      Dir.mkdir(path) unless FileTest.exist?(path)
    end
  end
end
# ディレクトリ内のファイルリスト. .svn と ., .. は無視
dir = Dir.glob('.*').reject{|ign| ign =~ /((^\.svn)|(^\.*$))/ }
# 既存ファイルのバックアップを dotfiles/backup 以下に作成する
backupdir = Dir.pwd + '/backup'
Dir.mkdir_p(backupdir)
# メイン
dir.each do |file|
  # ソースファイル
  dotfile = Dir.pwd + '/' + file
  # symlink の位置
  symlink = ENV['HOME'] + '/' + file
  # バックアップの位置
  backup = backupdir + '/' + file
  # ファイルが存在する場合
  if FileTest.exist?(symlink)
    # バックアップへの退避
    File.rename(symlink, backup) if FileTest.file?(symlink)
    FileUtils.move(symlink, backup) if FileTest.directory?(symlink)
    # backup が symlink の場合は削除
    File.delete(backup) if FileTest.symlink?(backup)
    # symlink 作成
    File.symlink(dotfile, symlink)
  else
    # symlink 作成
    File.symlink(dotfile, symlink)
  end
end
# backup direcotry が空なら削除
if Dir.entries(backupdir).reject{|i| i=~ /^\.*$/}.size == 0
  Dir.delete(backupdir)
end

連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲