LoginSignup
13
15

More than 5 years have passed since last update.

スクリプトを検索してインストールする「spitiko」

Last updated at Posted at 2015-08-09

※当初はシェルスクリプト用でしたが、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を使うためには、

  1. PHP
  2. GnuPG
  3. 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]
指定したスクリプトの情報を表示する。

現在登録されているスクリプト

  1. trash: ファイルを「~/.Trash」に移動するスクリプト
  2. apt-install: テキストファイルに列挙したパッケージを「apt-get」で一気にインストールするスクリプト
  3. gh: 「git add -A」→「git push」を連続して行うスクリプト
  4. git-sync: gitで作業をする時に便利なツール
13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15