タグ

cliに関するruedapのブックマーク (20)

  • Pythonのコマンドライン引数処理の決定版 docopt (あとJuliaに移植したよ) - りんごがでている

    Pythonをよく使う人にはよく知ってる人も多いのですが、docoptという便利ライブラリがあります。 docoptはargparseやoptparseのようなコマンドライン引数をパースするライブラリなのですが、その発想がコロンブスの卵なのです。 例えばPython標準のargparseだと、argparseのAPIを組み合わせてパーサを組み立てるわけです。するとパーサと一緒にヘルプも作ってくれて、"program --help"などとすると自動生成されたヘルプを表示してくれるようになります。 しかし、そのAPIを覚えるのが大変で、毎回ドキュメントを読まないと忘れちゃうわけです。 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument

    Pythonのコマンドライン引数処理の決定版 docopt (あとJuliaに移植したよ) - りんごがでている
  • docopt—language for description of command-line interfaces

    Command-line interface description language docopt helps you: define the interface for your command-line app, and automatically generate a parser for it. docopt is based on conventions that have been used for decades in help messages and man pages for describing a program's interface. An interface description in docopt is such a help message, but formalized. Here is an example: Naval Fate. Usage:

  • go-latestを使ってみた - Qiita

    @deeeetさんが開発して話題のgo-latestを早速使ってみた. go-latestはGitHubのタグなどと比較して,使用中のツールが最新版かチェックすることができる. 今回はGo製Sensu CLIのohgiに入れて使ってみた. Go言語のツールが最新バージョンであるかをユーザに伝えるためのgo-latestというパッケージをつくった | SOTA Go言語でsensuのCLI「ohgi」を作った - Qiita go-latestの使い方 go getでインストールして,ohgiのversionコマンドに組み込んでみた. main.goからはohgi.Version("v0.1.0")のように呼び出す. package ohgi import ( "fmt" "github.com/tcnksm/go-latest" ) func Version(version string)

    go-latestを使ってみた - Qiita
  • Go言語のツールが最新バージョンであるかをユーザに伝えるためのgo-latestというパッケージをつくった

    Go言語のツールが最新バージョンであるかをユーザに伝えるためのgo-latestというパッケージをつくった tcnksm/go-latest Webアプリケーションとは異なり,コマンドラインツールやモバイルアプリはバージョンアップがユーザに委ねられる.そのため一度リリースしてしまうとバージョンアップをしてもらうのが難しくなる(バグを含めてしまった場合にロールバックもできない cf. “Mobile First Development at COOKPAD #deploygate”).とにかくしっかりテストをしてそもそもバクを含めないというのも大切だが,完璧なソフトウェアは存在しないので,アップデートは常に必要になる. モバイルアプリとは異なり,Go言語でツールを書いきバイナリとして配布した場合は,最新のバージョンがすでに存在していることをユーザに伝える仕組みはそもそもない.ので,最新のバー

  • 私のpeco活用事例 - k0kubun's blog

    pecoというインタラクティブに入力をフィルタして出力するコマンドがあって、使い始めてからシェルの操作方法が大幅にかわり、だいぶライフチェンジングだった。 最近このへんが流行ってるのでやたら記事あるけど、せっかくなので僕も使い道を紹介しようと思う。 pecoをzshで使う 1. peco ghq ghqを使ったローカルリポジトリの統一的・効率的な管理についてのこと。 僕も$GOPATHは$HOMEにしていて、今のところ別に困ることはない。 go getしたりghq getしたりして美しくディレクトリ切った上で、pecoに割り当てておいたC-sですぐ目的のディレクトリ開けるようにしてあるので、めちゃくちゃソース管理が楽になった。 function peco-src() { local selected_dir=$(ghq list | peco --query "$LBUFFER") if

    私のpeco活用事例 - k0kubun's blog
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
  • Go言語でつくったツールをHomebrewで配布する

    先日、Go言語でつくった高速検索ツール(the_platinum_searcher)をHomebrewで配布できるようにしました。 意外とGo言語製ツールをHomebrew対応させる情報がなかったので、配布までの手順をまとめておきます。 Homebrewに対応させる HomebrewはMacで利用できるパッケージマネージャーです。 Homebrewでツールやパッケージを配布するにはそれらに関する情報やインストール方法を定義したFormula(製法)ファイルが必要です。 また、Formulaを登録するリポジトリも必要です。Homebrewには公式リポジトリがありますが、tapコマンドを使うことで独自リポジトリをFormula取得先として追加することができます。 今回は、独自リポジトリでFormulaを公開します。 Formulaファイルの作成 Formulaファイルを格納するディレクトリは独

    Go言語でつくったツールをHomebrewで配布する
  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • コマンドラインツールについて語るときに僕の語ること #yapcasia

    http://yapcasia.org/2014/talk/show/b49cc53a-027b-11e4-9357-07b16aeab6a4

    コマンドラインツールについて語るときに僕の語ること #yapcasia
  • HerokuとGithubを使った統一的なツール配布

    HerokuGithubを使った統一的なツール配布 Go言語ではクロスコンパイルがとても簡単で,複数プラットフォーム向けのバイナリをつくってそれを配布するというのがさらっとできる. 単純にやるなら, クロスコンパイルした各バイナリをzip等に固める Github Releaseやbintray,Dorone.ioなどにホストする そして,ユーザには自分のプラットフォームに合ったものをダウンロード/展開してPATHの通ったところに置いてもらう. 開発者からすると,すごい簡単.ホストするまで完全に自動化できる.でも,ユーザからすると若干めんどくさい. もっとツールを使い初めてもらうまでの敷居を下げたい. TL;DR 全プラットフォーム共通で以下のようにツールをインストールできるようにする.若干長いが1コマンド! $ L=/usr/local/bin/ghr && curl -sL -A "`

  • Go言語でテストしやすいコマンドラインツールをつくる

    記事はGo Advent Calendar 2014の18日目の記事です. Go言語は,クロスコンパイルや配布のしやすさからコマンドラインツールの作成に採用されることが多い.自分もGo言語でいくつかのコマンドラインツールを作成してきた.例えば,GitHub Releaseへのツールのアップロードを簡単に行うghrというコマンドラインツールを開発をしている. コマンドラインツールをつくるときもテストは重要である.Go言語では標準テストパッケージだけで十分なテストを書くことができる.しかし,コマンドラインツールは標準出力や標準入力といったI/O処理が多く発生する.そのテスト,例えばある引数を受けたらこの出力を返し,この終了ステータスで終了するといったテストは,ちゃんとした手法が確立されているわけではなく,迷うことが多い(少なくとも自分は結構悩んだ). 記事では,いくつかのOSSツール(得に

  • Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ

    この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になります。) コマンドラインツールについて コマンドラインツールを作るにあたって、@deeeet さんの YAPC Asia 2014 での発表資料が非常に参考になります。 書籍 UNIXという考え方ーその思想と哲学 の内容をベースに、コマンドラインツールはどうあるべきかということが丁寧に説明されています。 上記資料から引用させていただくと、コマンドラインツールにおいて重要なポイントは以下の7つであるとされています。 1つのことに集中している 直感的に使える 他のツールと連携できる 利用を助けてくれる 適切なデフォルト値を持ち設定もでき

    Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ
  • 対話型のコンソールアプリをpryの上に構築したらだいぶ楽できた - ただのにっき(2013-11-28)

    ■ 対話型のコンソールアプリをpryの上に構築したらだいぶ楽できた ゆえあってちょっとした対話型のアプリ、それもWebじゃなくてLinuxコンソールで動くものを作る必要が出てきた。入力をパースしたりするのも面倒だしなーと思い、ためしにpry上のDSLみたいな感じで作ってみたらなかなかいいものが簡単にできた。うん、これは楽でいいなぁ。今後も使おう。 こんな感じのsample.rbを書いて(2013-12-03追記: pryの仕様に合わせて一部リライト): require 'pry' # business logic module Sample def self.hello(name) "Hello #{name}!" end end # helloというコマンドを定義する Pry.commands.block_command 'hello' do |*args| args.map{|name

  • 軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました | DevelopersIO

    jq Manual jqで簡単JSON加工 | Developers.IO jqコマンドが実は高性能すぎてビビッた話 - beatsync.net JSONを超絶に読みやすくする jq コマンド - WebAPIバリバリ使うor開発する人必須 CLIでJSONの整形をする - ( ꒪⌓꒪) ゆるよろ日記 JSON形式の情報を様々な条件や書式として成形、フィルタリングツール『jq』。上記関連エントリで私もこのツールの存在を知る事になったのですが、ツールの簡易さ・便利さに感動しながら私もちょくちょく利用させてもらっています。 そこでこのエントリでは、jq公式ページに展開されている利用ガイド・リファレンス的な位置付けの『jq Manual』を写経がてらざっくり日語訳してみました。ざっくり訳なのでこの部分の訳おかしい・間違ってる等ありましたら御指摘頂けると幸いです。例示されているサンプルコードも

    軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました | DevelopersIO
  • introvert.com

    ascii.io Interested in this domain? Get in touch

  • Node GH - All the power of GitHub in your terminal

    Install via NPM[sudo] npm install gh -gYou need NodeJS to do that.

    ruedap
    ruedap 2013/06/08
    hubコマンドには無い機能がある、IssueやPRの一覧見たりとか
  • jqコマンドが実は高性能すぎてビビッた話

    GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい

    jqコマンドが実は高性能すぎてビビッた話
    ruedap
    ruedap 2013/05/01
    べんり
  • 僕がMacのホームディレクトリを削除するに至った経緯と、復元するまでの道のり | CreativeStyle

    最初に結論から申し上げますと、僕 @kadoppe はアホです。大馬鹿者です。 この度、仕事にフル活用しているMacBook Proのホームディレクトリ(/Users/<ユーザ名>)を削除するという愚行を働いてしまいました。 具体的に何をしたのか。それは、以下のコマンドの実行です。 コマンドにあまり詳しくない人のために説明すると、この短いコマンドをターミナルを開いて実行するだけで、有無を言わさずホームディレクトリの削除が開始されてしまう、恐怖のコマンドです。良い子は危険だから真似しちゃダメだよ! ではここからは、僕は何故こんなことをしてしまったのか、その経緯を言い訳がましく説明したいと思います。恥ずかしいですが、二度とこんなことを繰り返さないようにするために。 「~」という名前のディレクトリ 通常「~」(チルダ)という記号はホームディレクトリを表します。~/はMacだと実際には/Users

    僕がMacのホームディレクトリを削除するに至った経緯と、復元するまでの道のり | CreativeStyle
    ruedap
    ruedap 2013/04/08
  • JasmineをCLIで走らせるならjasmine-headless-webkitが楽すぎる

    先日から CI づいているので今度は JavaScript のユニットテストの分を調べました。 現在のwtnabeの普段の開発手法Jasmine gem と guard-livereload を使ってブラウザで自動reloadさせながら Jasmine でユニットテストを書くということをしています。これはやっぱりブラウザで動かせる Firebug などの開発者ツールがとても強力なので、何かあったときに探っていくのに便利であることが理由として大きいです。あとブラウザで見ることができる方がなんか安心というのもあります。 しかしこのままでは CI と相性がよくありません。だから今まで CI は無視してたのです。 rake jasmine:ciはGUIブラウザ前提一応 Jasmine gem には というタスクが定義されているのですが、これは基的に Selenium でブラウザを起動してテストを

  • Ruby で作る、簡単 CLI ツールのススメ - Qiita

    Ruby 開発環境 AdventCalendar 10 日目です。前日は、 aereal さんでした。 さて、皆さんコマンド打ちまくってますか?僕は Ctrl+R で履歴から引っぱり出さないとタイポで撃沈します。 そんなこんなで皆さんいろんな CLI ツールをご利用中だと思います。 vim とか emacs とか、 rails g とか、 guard とか。実に便利なものたちですが、現実の開発現場に即した、素晴らしいニッチなツールというのは、得てしてそんなにないものです。 「こんなに重厚でなくていい」 「もうちょっとざっくりとした……なんというか痒いところに手が届くような……」 などなど、いろいろあると思います。例えば「チームで開発しているのだが、今行ったコミットのレビューを依頼するメールを書くのが面倒なので社内 Twitter 的なものに書こうかと思うのだがそれもめんどくさいのでコミット

    Ruby で作る、簡単 CLI ツールのススメ - Qiita
  • 1