※当初はシェルスクリプト用でしたが、CLIで動作するスクリプトならなんでも使えるようにしました。
スクリプトをパッケージとして扱う
最近、シェルスクリプトをいくつか書いて、それを複数台のLinuxBox/Macで使っているが、ひとつひとつをgithubで管理して、それぞれのサーバーでpullして使っているのがめんどくさくなってきました。
なので、アルファ版的な完成度ではあるがパッケージ化したスクリプトを検索して、インストールする仕組みを自前のサーバーで構築してみました。
登録されているスクリプトは最下段に列挙してあります。
この仕組みを実現するのは、PHPスクリプトの「spitiko」です。
githubにあげてあるのですぐ使えます。
https://github.com/digitarhythm/spitiko.git
cloneするとspitikoスクリプトと設定ファイルがダウンロードされます。
Debian系Linuxの場合は下記のような感じで使えるようになると思います。
([バージョン番号]は、7.2とかに置き換えてください)
ここからroot作業
- 必要なAPTパッケージをインストール
# apt-get install php[バージョン番号]-dev
# apt-get install php[バージョン番号]-sqlite3
# apt-get install libgpgme11-dev
# apt-get install php-pear
- PHPのGnuPGライブラリをmake
# pecl install gnupg
- PHPの設定ファイルにライブラリ読み込み設定を記述
CLIのphp.ini(Ubuntuだと「/etc/php/[バージョン番号]/cli/php.ini」)に、
extension=gnupg.so
を適切な場所(950行目あたり)に追記。
root作業ここまで
- spitikoを使うユーザーにGPGの公開鍵をインストール
$ gpg --keyserver pgp.nic.ad.jp --recv AF8C0606
これでspitikoは使えるようになると思います。
以下、githubの「README.md」そのままです。
スクリプトをインストールするためのスクリプト
spitikoを使うためには、
- PHP
- GnuPG
- SQLite3
が必要です。
GnuPGと、SQLite3をPHPから使えるようになっている必要があります。
事前準備として、私のGnuPG公開鍵「AF8C0606」をインストールする必要があります。
# gpg --keyserver pgp.nic.ad.jp --recv AF8C0606
で、インストール出来ます。
とりあえずは、GnuPGのセットアップが必要です。
今のところ、バージョンチェックなどはしていないので、すでにインストールしてあるスクリプトを再インストールすると、上書きされます。
「spitiko」コマンドのインストール
コマンドの初回実行時に、
~/.spitiko
~/.spitiko/script.d
のディレクトリと、
~/.spitiko/spitikopackage.db
が作成されます。 SQLite3を使って、このDBファイルにインストールすることが出来るスクリプトの情報を保存します。
「~/.spitiko/script.d」にパスを通しておくと、インストールしたスクリプトをすぐに使うことが出来ます。
使い方
$ spitiko update
インストールする事が出来るスクリプトのデータベースを更新します。
$ spitiko search [string]
指定した文字列で、スクリプト名と説明を検索して、ヒットしたものを表示します。
環境変数「SPITIKO_SH」に、検索対象のシェルの名前を入れておくと、そのシェル用のスクリプトがフィルタリングされます。
例)export SPITIKO_SH="zsh"
なにも指定が無い場合は「bash」が使用されます。
$ spitiko install [script name]
指定したスクリプトをインストールします。
$ spitiko info [script name]
指定したスクリプトの情報を表示する。
現在登録されているスクリプト
- trash: ファイルを「~/.Trash」に移動するスクリプト
- apt-install: テキストファイルに列挙したパッケージを「apt-get」で一気にインストールするスクリプト
- gh: 「git add -A」→「git push」を連続して行うスクリプト
- git-sync: gitで作業をする時に便利なツール