の環境切り替えプログラム

netbeansの環境を切り替えて使う。

とりあえず、ruby使うときと、それ以外のときの2パターンを用意して
起動時間を早める。

わたすのますんは古いので、windows2000です。
でもってこの環境は遅いです。
したがって、できるだけ軽くしたい。
そういうわけで、環境の保存と、復元、切り替えを簡単に出来ると、
色々ウレシそうなのでやってみました。


作ったものは、D言語のネイティブアプリです。
まず、pluginm.exe。これで、
C:\Documents and Settings\ユーザー名\.netbeans\plugin
というフォルダがあれば、そこから、
C:\Documents and Settings\ユーザー名\.netbeans\6.0
にコピーします。
次に、netbeansを起動。
終了したら、
C:\Documents and Settings\ユーザー名\.netbeans\6.0
から
C:\Documents and Settings\ユーザー名\.netbeans\plugin
にコピります。
こういうプログラムをrubym.exeも作ります。
あとは、使いたいプロファイルを設定してあげれば別々の環境を切り替えて実行できます。
さらに、IDEプラグイン開発の再に、使用中のIDEに改変が加わると問題が発生する場合
があります。
そんなときは、これは使わないで、開発します。
そして、元に戻したくなったら、適当に、pluginm.exeで起動すれば元に戻ります。
これで、わざわざ、別なIDEを起動してよいため、高速に開発ができます。


以下、ソースです。非常に適当。
で、rubyのところを書き換えて、pluginとかやって使ってます。

import std.file;
import std.string;
import std.process;

void main() {
	sub("ruby","6.0");
	system(`"C:\Program Files\NetBeans 6.0.1\bin\netbeans.exe"`);
	sub("6.0","ruby");
}
void sub(string path, string topath) {
	if(!exists(topath)) mkdirs(topath);
	foreach(string file; listdir(path) ) {
		if (file == "." || file == "..") continue;
		if (isdir(path ~ "/" ~ file)) sub(path ~ "/" ~ file, topath ~ "/" ~ file);
		else copy( path ~ "/" ~ file, topath ~ "/" ~ file);
	}
}
void mkdirs(string dir) {
	string[] s = split(dir,"/");
	string dirs="";
	for (int i=0;i<s.length;i++) {
		if(s[i] != ""){
			dirs = dirs ~ s[i] ~ "/";
			try{
				if(!exists(dirs))
					mkdir(dirs);
			}catch(Exception e){}
		}
	}
}

void copy(string path, string topath) {
	write(topath, read(path));
}