テンプレを作るスクリプト
Templatesディレクトリにファイルとおいておくと,
nautilusで右クリックしてファイルを簡単に作ることができる.
しかし,コマンドラインからこのテンプレートを使おうとすると
cp ~/Templates/うんたらかんたら
と打たなくてはならないので結構面倒.
さらに,自分は結構うっかりさんなので,
Templatesフォルダの中身の権限を読み取り専用ぐらいにしておきたいのだが,
そうするとコピーしたあとに権限を変えなくてはならない.
また,単一ファイルはこれで十分だが,
複数ファイルはさらに面倒だ.
ってわけで,いろいろと作ってみる.
まず,C++のクラスを作るテンプレ
そしてzsh用シェルスクリプト
select命令便利!
さらにホームのTemplatesに適当にファイルを置く.
このとき,chmod 444で読み取り専用にしておく.
これで楽にテンプレを使える.
さらに,選択したテンプレートが圧縮ファイルでもあったら,
それを展開するとかしてもいいかも.
nautilusで右クリックしてファイルを簡単に作ることができる.
しかし,コマンドラインからこのテンプレートを使おうとすると
cp ~/Templates/うんたらかんたら
と打たなくてはならないので結構面倒.
さらに,自分は結構うっかりさんなので,
Templatesフォルダの中身の権限を読み取り専用ぐらいにしておきたいのだが,
そうするとコピーしたあとに権限を変えなくてはならない.
また,単一ファイルはこれで十分だが,
複数ファイルはさらに面倒だ.
ってわけで,いろいろと作ってみる.
まず,C++のクラスを作るテンプレ
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
def main():
print "Name Space"
nsName = raw_input()
while True:
print "Class Name"
className = raw_input()
if className != "":
break
if nsName == "":
header = """
class %(cs)s {
public:
%(cs)s();
~%(cs)s();
};""" % {'cs': className}
src = """#include "%(cs)s.h"
%(cs)s::%(cs)s() {
}
%(cs)s::~%(cs)s() {
}
""" % {'cs': className}
else:
header = """
namespace %(ns)s
{
class %(cs)s {
public:
%(cs)s();
~%(cs)s();
};
};""" % {'ns': nsName, 'cs': className}
src = """#include "%(cs)s.h"
%(ns)s::%(cs)s::%(cs)s() {
}
%(ns)s::%(cs)s::~%(cs)s() {
}
""" % {'ns': nsName, 'cs': className}
with open(className + ".h", 'w') as f:
f.write(header)
with open(className + ".cpp", 'w') as f:
f.write(src)
if __name__ == '__main__':
sys.exit(main())
そしてzsh用シェルスクリプト
select命令便利!
#!/bin/zsh
TMPLS=("C++Class" $(ls $HOME/Templates))
select SELECTED in $TMPLS
break
if [ $SELECTED = "C++Class" ]; then
python ~/bin/tmplCppClass.py $1
elif [ -f "$HOME/Templates/$SELECTED" ]; then
echo cpy
cp "$HOME/Templates/$SELECTED" ./$1
if [ -z $1 ]; then
chmod 644 ./$SELECTED
else
chmod 644 ./$1
fi
fi
さらにホームのTemplatesに適当にファイルを置く.
このとき,chmod 444で読み取り専用にしておく.
これで楽にテンプレを使える.
さらに,選択したテンプレートが圧縮ファイルでもあったら,
それを展開するとかしてもいいかも.