[
自宅サーバーWebRing
┃
前
|ID=54
前後5表示
|
次
┃
乱移動
|
サイト一覧
]
このサイト内
書籍 DVD CD
Google(日本語)
Google(Web全体)
Google(イメージ)
Google(キャッシュ)
Yahoo! JAPAN
goo 英和
goo 和英
goo 国語
goo 新語
サイトマップ
リンク集
ダウンロード
フォーラム
Users Wiki
最新情報
TOP
»
UsersWiki
»
nao-pon
»
blog
» 2012-06-05のソース
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
github へシェルスクリプトで自動 push する健忘録
のソース
UsersWiki
:
nao-pon
/
blog
/
2012-06-05
のソース
差分
を表示
nao-pon/blog/2012-06-05
へ行く。
#navi RIGHT:&rsslink(../); #boxdate * github へシェルスクリプトで自動 push する健忘録 [#v6af4849] RIGHT:&tag(github,プログラミング,シェルスクリプト); ** まえおき [#zc22c229] XOOPS Cube Legacy 向けに naaon さん、domifara さんが中心となって製作している xupdate モジュール。 xupdate は、ファイル数・サイズ共に大きくなりがちで FTP で上げるのに手間と時間が掛かる XOOPS において、その手間と時間を劇的に軽減してくれる素晴らしいモジュール(拡張機能)です。 拙作の HypCommonFunc, HypConf, xpWiki, xelFinder もこの xupdate でとても簡単にインストール・アップデートができるようになっています。 特に、インストールに関しては、面倒なディレクトリのパーミッション設定も漏れなく処理してくれるので、これは本当に便利です。 この xupdate に対応するために、モジュール情報を記載した簡単な設定ファイルが必要になるのですが、私のモジュールの場合は github に置いてありそこから取得するようになっています。この設定ファイルに、バージョン番号を記載しておくと、バージョンアップ時の情報として表示されるようになっているので記載するようにしたのですが、対象モジュールのバージョンアップをした場合に、忘れずに更新する必要があります。 ただ、私はとても忘れっぽい性格なので、きっと忘れるだろうな。 :hammer: ということで、この作業を自動化することにしました。 ** やっと本題 [#s270f393] 該当のモジュールの github へ push した場合に、決められた処理を行わせるために Service hooks を設定します。 github のリポジトリの admin ボタンから Service hooks を選択して、WebHook URLs に手元の Web サーバーの hook 用のシェルスクリプト CGI のURL を登録します。 :例えば| http://xoops.hypweb.net/path/to/github_hook.cgi こうして置いて、シェルスクリプト CGI の作成です。 例えば、HypcommonFunc + HypConf #code(bash){{ #!/bin/sh echo "Content-type: text/plain" echo "" cd /path/to/hyp_common VER=`grep -m1 "\$modversion\['version'\] =" xoops_trust_path/modules/hypconf/xoops_version.php|sed 's/[^0-9.]//g'` DVER=`grep -m1 "\$version =" xoops_trust_path/class/hyp_common/version.php|sed 's/[^0-9.]//g'` cd /path/to/xoops_xupdate_store sed -i 's/\(version = "\)[0-9.]*\(" ;hypconf version\)/\1'$VER'\2/' xupdate_modules.ini sed -i 's/\(detailed_version = "\)[0-9.]*\(" ;hypcommon version\)/\1'$DVER'\2/' xupdate_modules.ini git commit xupdate_modules.ini -m "HypConf version $VER" git push origin master }} + ローカル git のパスが /path/to/hyp_common になっています。 + 7行目で HypConf, 8行目で HypCommonFunc のバージョン番号を取得して変数に入れています。 + xupdate の設定ファイル(xupdate_modules.ini)用のローカル git のパスが /path/to/xoops_xupdate_store になっています。 + 10, 11行目で xupdate_modules.ini に記載されたバージョン番号を書き換えています。 + で、commit して push です。 シェルスクリプトはこれで完了です。ただ、これだけでは問題があります。push する時にパスワードを求められて止まってしまうんですね。 なので、github への接続を ssh ではなく https 接続にしておき CGI の実行ユーザーの .netrc ファイルに github.com の定義を追加します。&br; ※ 安全のために suEXEC を利用して、この CGI 専用のアカウントで CGI を実行できるようにすることをお薦めします。 machine github.com login username password pass これで、http://xoops.hypweb.net/path/to/github_hook.cgi へアクセスして問題なければ、github への該当モジュールの push 時に、バージョン番号に変化があれば、自動で xupdate_modules.ini も更新されるようになるわけです。めでたし、めでたし。 とまあ、簡単な説明ですがこんな感じです。 :-D ** めでたし、のはずでしたが・・・ [#i7deb40a] うまくいくと思っていたのですが、実際には github への push ができなくて、おまけに コミッター名とメールアドレスが user.name, user.email で設定したものが反映されない。(ローカルの(suEXEC)ログイン名になってる) 試しに、このシェルスクリプトを cron で回すと、期待した通りに動いて push もできる。 悩んだで、試行錯誤した結果 PHP の exec() で sudo -u <ユーザ名> してシェルスクリプトを実行することにしたら上手くいく模様。 visudo で、今回使用するユーザーに対して、利用シェルスクリプトを NOPASSWD として設定した。 RIGHT:&font(90%){&page_comments;}; #navi
nao-pon/blog/2012-06-05 のバックアップソース(No. All)
現: 2012-06-05 (火) 21:41:29
nao-pon
ぺージ情報
ぺージ名 :
nao-pon/blog/2012-06-05
ページ別名 :
未設定
ページオーナー :
nao-pon
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
ゲスト
Counter: 315, today: 1, yesterday: 0
メインメニュー
ホーム
価格比較 百貨
UsersWiki
新規ページ作成
最新ページ一覧
全ページ一覧
全コメント一覧
ヘルプ
» 関連ページ
» 記述を見る
» 変更点を見る
» バックアップ一覧
» 添付ファイル一覧
» リンク元一覧
xpwiki
お問い合わせ
ファイルマネージャー
ログイン
ユーザー名:
パスワード:
パスワード紛失
|
新規登録
最近の更新
最新の20件
2023-05-14
nao-pon
/
gmap + gmap_street + gmap_insertmarker
nao-pon
/
googlemaps2
2023-03-22
PublicBlog
/
The Importance of QFP in PCB
2023-02-28
FrontPage
/
PCB terminology you must know
2023-01-20
nao-pon
/
blog
/
ESP8266 を壊してしまいました しかも続けて2回も
2022-09-22
nao-pon
/
blog
/
ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater
2022-08-26
nao-pon
/
blog
/
独自ビルドの Tasmota を 12.1.1 へ
2022-08-19
nao-pon
/
blog
/
Zigbee + ZHA のメモ書き
2022-01-17
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC に貢献
2021-08-03
nao-pon
/
ファイル置き場
/
スペースサワダ
2021-07-01
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC の不具合修正
2021-06-20
nao-pon
/
blog
/
Tasmota を 9.4.0 から 9.5.0 へアップデート
2021-06-15
nao-pon
/
blog
/
ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った
2021-04-27
PublicBlog
2021-03-17
nao-pon
/
blog
/
SwitchBot 温湿度計を ESP32 でモニタリング
2021-03-13
nao-pon
/
blog
/
東芝エアコンのエントリーモデルもWiFi化
2021-02-23
risoulaser
2021-02-18
nao-pon
/
blog
/
Panasonic (ナショナル) エアコンの 2008 年モデルも WiFi 化
2021-02-15
nao-pon
/
blog
/
Tasmota で HA 端子(JEM-A) 連携
2021-02-07
nao-pon
/
blog
/
Tasmota で三菱エアコンを完全コントロール
オンライン状況
383 人のユーザが現在オンラインです。 (5 人のユーザが UsersWiki を参照しています。)
登録ユーザ: 0
ゲスト: 383
もっと...
サイト情報