Tag/CUI

OptionParserメモ

Python 使ってコマンドラインからゴニョゴニョしようと思って、 調べてみたら OptionParser なんてものがあったので試してみたメモ。

6.21 optparse -- より強力なコマンドラインオプション解析器 を見ながらhoge.pyとかにして試してみる。

#!/usr/bin/env python
# vim: encoding=utf=8

from optparse import OptionParser

parser = OptionParser()

def main():
    options, args = parser.parse_args()
    print options
    print args

if __name__ == '__main__':
    main()

これだけでヘルプの表示までは出来るようになってるらしい。 -h--help でヘルプが表示出来るらしく、 実際にやってみるとこんな感じになったよ。

$ ./hoge.py -h
Usage: hoge.py [options]

Options:
  -h, --help  show this help message and exit

ここからオプションを add_option なメソッドを使って、 必要なオプションを詰め込んでいけば良いらしい。 リファレンス見ながらやってみる。

parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
                  help="write report to FILE", metabar="FILE")
parser.add_option("-q", "--quiet", action="store_false",
                  dest="verbose", default=True,
                  help="don't print status messages to stdout")

これでもう1回ヘルプを表示してみると、

$ ./hoge.py -h
Usage: hoge.py [options]

Options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  write report to FILE
  -q, --quiet           don't print status messages to stdout

ちゃんと増えてるよ。 ここまで簡単に出来ると、 今までシェルで書いてたのがバカらしくなってくるなぁ。

実際に適当に実行してみて、 どんなふうに値が取れるのか見てみると、 キーワード指定したものはoptionsに、普通に指定したものはargsに入ってくるみたい。

$ ./hoge.py -f hoge.txt
{'verbose': True, 'filename': 'hoge.txt'}
[]

$ ./hoge.py -f hige.txt -q
{'verbose': False, 'filename': 'hige.txt'}
[]

$ ./hoge.py hoge -f hige.txt -q
{'verbose': False, 'filename': 'hige.txt'}
['hoge']

add_option の引数のキーワードの種類とか説明は、 リファレンスを見るのが一番良いって覚えておく。

Posted at: 
2008/03/09 00:26:16
0 Comments
1 TrackBack
Tags: 
CUI
Python
Trackback: 
http://humming.via-kitchen.com/2008/03/09/optionparser-memo/trackback/

UbuntuをGustyにアップグレードしたよ。

またまたリリースされた随分と間があいてからのアップグレード。

前回どうやったか全く覚えてなかったので、 とりあえずググってみたら、 Ubuntu Japanese TeamUbuntuのサーバからネットワーク経由でアップグレードする方法 にばっちり書いてありました。

$ sudo do-release-upgrade

で、いけるらしい。 我が家の Ubuntu には既に入っていたので、 そのまま叩いてみた。

ssh 接続がどうとか、 PAM リビルドする際のどうとか、 /etc/bash.bashrc を置き換えるか?とか、 若干質問されたものの、 すんなりアップグレード終了。

前回のアップグレード の時は、 もうちょっとメンドクサイ事した様な気がするんだけども、 気のせいだったかな?

前回のアップグレード のエントリー見て、 実際やった事を何一つ書いてないのに笑えた! 相当焦ってたんだろうなぁ。自分 :-P

Posted at: 
2008/02/23 00:30:59
0 Comments
0 TrackBacks
Tags: 
CUI
Ubuntu
Trackback: 
http://humming.via-kitchen.com/2008/02/23/upgrade-ubuntu-gusty/trackback/

Macでユーザの追加のやり方

Leopardになって、NetInfoが無くなってから、 どうやってユーザ追加するのかな?と思ってたら、 dscl ってコマンドで出来るらしいよ。

$ sudo dscl . -create /Users/<USERNAME>
$ sudo dscl . -create /Users/<USERNAME> UniqueID <uid>
$ sudo dscl . -create /Users/<USERNAME>  PrimaryGroupID <gid>
$ sudo dscl . -create /Users/<USERNAME> UserShell </path/to/shell>
$ sudo dscl . -create /Users/<USERNAME> NFSHomeDirectory </path/to/home>

グループの追加はこんな感じらしい。

$ sudo dscl . -create /Groups/<GROUPNAME>
$ sudo dscl . -create /Groups/<GROUPNAME> PrimaryGroupID <gid>

【コラム】OS X ハッキング! (251) Leopard解体新書(2) ~さようならNetInfo~ | パソコン | マイコミジャーナル で、 結構詳しく解説してくれるよ。

迷ったときは、とりあえず、

$ dscl
>help

して、ヘルプみたら良いって覚えておく。

Posted at: 
2008/01/23 08:51:35
0 Comments
0 TrackBacks
Tags: 
CUI
Mac
Trackback: 
http://humming.via-kitchen.com/2008/01/23/how-to-add-user-on-mac/trackback/

Macでパスワード付きzipを作る。

Mac でパスワード付きzipを作りたいと思って、 色々探しまわってみたら、 Zip Tools for Mac OSX なんてモノを見つけた。 これの中に入ってる zipcloak ってコマンドでパスワードを設定出来るらしい。

で、入れる前になんとなくwhichしてみたら、 10.5にデフォルトで入ってたよ。

//  圧縮自体はしてくれないので、先にやっておく。
$ zipcloak /path/to/hoge.zip

ってやると、パスワードを聞かれる。 2回聞かれるので、同じのを入力しておしまい。

デフォルトのアーカイブユーティリティだとエラー吐いて展開出来ないけど、 StuffIt Expander なら問題なく展開出来た。

Posted at: 
2008/01/15 05:24:49
0 Comments
1 TrackBack
Tags: 
CUI
Mac
Trackback: 
http://humming.via-kitchen.com/2008/01/15/create-locked-zip-on-mac/trackback/

ホームディレクトリとか。

yoshuki さんと

「みんな $HOME な設定ファイルを svn で公開していこうよ。」

な話で盛り上がった!で、そのまま勢いで SVNレポジトリ 公開してみたよ。まだまだデフォルトそのままってのも多数なので、コレから充実させて行けたら良いなぁ。

個人的には .django_bash_completion が入ってるのがミソだと思い込んでおります!

Posted at: 
2007/07/04 00:18:02
0 Comments
0 TrackBacks
Tags: 
bash
CUI
Linux
Svn
Trackback: 
http://humming.via-kitchen.com/2007/07/04/my-home-directory/trackback/

DjangoのコマンドをTAB補完

教えて頂いた?参考にさせて頂いたのは monospace blog さんの コチラ のエントリー。

Django 使ってて未だにコマンドラインオプションをミスタイプとかをするわけで、何かいい方法は無いか?と毎回思ってました。

で、今回発見?したこの django_bash_completion !! Django のコマンドラインオプションをTAB補完させてしまう強者。なんか素敵!なんか素敵!

で、使用方法としては Django のtarballを展開した中に extras なディレクトリがあり、その中に django_bash_completion があります。それを .bash_profile なり .profile なりで読み込めば完了。今回はホームディレクトリ直下に .django_bash_completion とかにリネームしておいてみた。

まずは .bash_profile に以下を記述。

if [ -f ~/.django_bash_completion ]; then
    . ~/.django_bash_completion
fi

ここで一度ログインし直すか、 .bash_profile を読み込み直す。

$ source ~/.bash_profile

最後はプロジェクトディレクトリでテスト。

$ cd /path/to/djangoproject
$ ./manage.py sy # ココでTAB
$ ./manage.py syncdb

もう一個ぐらいテスト。

$ ./manage.py st # ココでTAB
$ ./manage.py start # さらにTAB TAB
startapp      startproject

素敵過ぎる!また一つ Django が好きになりましたとさ。

Posted at: 
2007/06/07 01:44:17
2 Comments
0 TrackBacks
Tags: 
bash
CUI
Django
Python
Trackback: 
http://humming.via-kitchen.com/2007/06/07/django-bash-completion/trackback/

Categories

Archives