hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » calendar nao-pon/blog/2012.06
Archives
2003
1 2 3 4 5 6 7 8 9 10 11 12
2004
1 2 3 4 5 6 7 8 9 10 11 12
2005
1 2 3 4 5 6 7 8 9 10 11 12
2006
1 2 3 4 5 6 7 8 9 10 11 12
2007
1 2 3 4 5 6 7 8 9 10 11 12
2008
1 2 3 4 5 6 7 8 9 10 11 12
2009
1 2 3 4 5 6 7 8 9 10 11 12
2010
1 2 3 4 5 6 7 8 9 10 11 12
2011
1 2 3 4 5 6 7 8 9 10 11 12
2012
1 2 3 4 5 6 7 8 9 10 11 12
2013
1 2 3 4 5 6 7 8 9 10 11 12
2014
1 2 3 4 5 6 7 8 9 10 11 12
2015
1 2 3 4 5 6 7 8 9 10 11 12
2016
1 2 3 4 5 6 7 8 9 10 11 12
2017
1 2 3 4 5 6 7 8 9 10 11 12
2020
1 2 3 4 5 6 7 8 9 10 11 12
2021
1 2 3 4 5 6 7 8 9 10 11 12
2022
1 2 3 4 5 6 7 8 9 10 11 12
2023
1 2 3 4 5 6 7 8 9 10 11 12
<< 2012.6 >>
[nao-pon/blog]
          1 2
3 4 6 7 8 9
10 12 13 14 16
17 20 22 23
24 25 26 27 28 29
 
RSS of nao-pon/blog

github へシェルスクリプトで自動 push する健忘録 anchor.png

Page Top

まえおき anchor.png

XOOPS Cube Legacy 向けに naaon さん、domifara さんが中心となって製作している xupdate モジュール。

xupdate は、ファイル数・サイズ共に大きくなりがちで FTP で上げるのに手間と時間が掛かる XOOPS において、その手間と時間を劇的に軽減してくれる素晴らしいモジュール(拡張機能)です。

拙作の HypCommonFunc, HypConf, xpWiki, xelFinder もこの xupdate でとても簡単にインストール・アップデートができるようになっています。
特に、インストールに関しては、面倒なディレクトリのパーミッション設定も漏れなく処理してくれるので、これは本当に便利です。

この xupdate に対応するために、モジュール情報を記載した簡単な設定ファイルが必要になるのですが、私のモジュールの場合は github に置いてありそこから取得するようになっています。この設定ファイルに、バージョン番号を記載しておくと、バージョンアップ時の情報として表示されるようになっているので記載するようにしたのですが、対象モジュールのバージョンアップをした場合に、忘れずに更新する必要があります。

ただ、私はとても忘れっぽい性格なので、きっと忘れるだろうな。 :hammer:

ということで、この作業を自動化することにしました。

Page Top

やっと本題 anchor.png

該当のモジュールの 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

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
-
!
 
 
 
 
 
 
 
 
 
 
 
#!/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
  1. ローカル git のパスが /path/to/hyp_common になっています。
  2. 7行目で HypConf, 8行目で HypCommonFunc のバージョン番号を取得して変数に入れています。
  3. xupdate の設定ファイル(xupdate_modules.ini)用のローカル git のパスが /path/to/xoops_xupdate_store になっています。
  4. 10, 11行目で xupdate_modules.ini に記載されたバージョン番号を書き換えています。
  5. で、commit して push です。

シェルスクリプトはこれで完了です。ただ、これだけでは問題があります。push する時にパスワードを求められて止まってしまうんですね。

なので、github への接続を ssh ではなく https 接続にしておき CGI の実行ユーザーの .netrc ファイルに github.com の定義を追加します。

※ 安全のために 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

Page Top

めでたし、のはずでしたが・・・ anchor.png

うまくいくと思っていたのですが、実際には github への push ができなくて、おまけに コミッター名とメールアドレスが user.name, user.email で設定したものが反映されない。(ローカルの(suEXEC)ログイン名になってる)

試しに、このシェルスクリプトを cron で回すと、期待した通りに動いて push もできる。

悩んだで、試行錯誤した結果 PHP の exec() で sudo -u <ユーザ名> してシェルスクリプトを実行することにしたら上手くいく模様。

visudo で、今回使用するユーザーに対して、利用シェルスクリプトを NOPASSWD として設定した。


 
RSS of nao-pon/blog

X-elFinder が ver. 0.22 になりました anchor.png

今回は、DB構造に変更があるのでモジュールアップデートが必須になっています。

0.22 からは、サイト内の他のボリューム(myalbum-P とか GNAVI など)から共有ホルダにファイルコピーをする場合に、ファイル実体はコピーせずに alias(別名) を使用するようにしました。
これにより、ファイルコピーでサイト内で同じ画像が重複保存されることがなくなりました。

共有ホルダにコピーしておくと、BB-Code での画像参照時に任意の大きさのサムネイルを表示できるようになります。

Page Top

追記 anchor.png

1ファイルコミット漏れがありました。たった今追加 push しました。 - 2012-06-11 (月) 17:48:17


 
RSS of nao-pon/blog

HypCommonFunc 更新 (Ver. 20120608, 20120615) HypConf に新規設定追加など anchor.png

HypCommonFunc を更新して、Ver. 20120615 としました。

ダウンロードは、HypCommonFunc のページからどうぞ。
(最新版の xpWiki には同じものが含まれています。)

Page Top

主な更新内容 anchor.png

  • 1901bb8: spam-sites update
  • 9b89448: spam-sites update
  • 437f18d: spam-sites update
  • 1238b38: use "eucJP-win" on mb_convert
    • mb_convert での文字コード変換で EUC-JP を eucJP-win として変換するようにしました。
  • 519d739: fix typo (enbug)
  • 8a52021: update spamsites
  • 1ed91e3: Version 20120608
  • 3b34c63: clean up
  • 902f7d7: add new config [MISC.] - [TAG inserted in last of <head>]
    • HypConf モジュールに新しい設定、

      「その他の設定」-「<head>内の最後に挿入するタグ」を追加
  • 59c7a17: HypConf Version 1.02
  • 10fb5b5: add a method function getReleaseTime($title)
  • 06e0f25: Version 20120615
Page Top

html側 の更新について anchor.png

今回は HTML 側ファイルの更新はありません。


 
RSS of nao-pon/blog

HypCommonFunc 更新 (Ver. 20120618) HypConf に新規設定(Smartyプラグインディレクトリ(優先順))追加 anchor.png

HypCommonFunc を更新して、Ver. 20120618 としました。

ダウンロードは、HypCommonFunc のページからどうぞ。
(最新版の xpWiki には同じものが含まれています。)

Page Top

主な更新内容 anchor.png

  • b99cd6b: add setting "Directorys of smarty plugins(Priority order)" into HypConf
    • HypConf の「その他の設定」に「Smartyプラグインディレクトリ(優先順)」を追加。

      Smartyプラグインディレクトリの設定ができるようになりました。

      また、html/preload/HypXoopsTplHook.class.php と同等の機能となるため、

      HypXoopsTplHook.class.php は撤去するか html/preload/disabled へ移動することをお勧めします。

  • 14e6629: [HypConf] Misc-xoopstpl_plugins_dir: message(non-support system)notify
    • xoopstpl_plugins_dir の設定欄に XCL 以外のシステムの場合「この設定は XOOPS Cube Legacy

      システムでのみ利用可能です。 」を表示
Page Top

html側 の更新について anchor.png

今回は HTML 側ファイルの更新はありません。


 
RSS of nao-pon/blog

HypCommonFunc 更新 (Ver. 20120619) HypConf のバグ修正など anchor.png

HypCommonFunc を更新して、Ver. 20120619 としました。

ダウンロードは、HypCommonFunc のページからどうぞ。
(最新版の xpWiki には同じものが含まれています。)

Page Top

主な更新内容 anchor.png

  • 2e30c9a: optimaize method stripslashes_gpc()
    • stripslashes_gpc() メソッド関数の最適化
  • 29d3927: [HypConf] fix problem of back-slash as data
    • データ中の複数続くバックスラッシュが正しく処理されない問題の修正
  • 072df44: [HypConf] fix problem enabled magic_quotes_gpc environment
    • magic_quotes_gpc が有効の環境に対応
  • f44c783: [HypConf] show real-path of conf file
    • 管理画面トップ表示されている設定ファイルのパスをフルパスで表示するようにした。
  • a63dc16: Version 20120619
Page Top

html側 の更新について anchor.png

今回は HTML 側ファイルの更新はありません。


 
RSS of nao-pon/blog

X-elFinder が Ver. 0.23 になりました anchor.png

elFinder を最新版にしたり、細かいバグ修正をしたり、写メールBBS プラグインでファイル名にタイトルを表示するようにしたりしました。

Page Top

更新内容 anchor.png

  • f7b8ec8: disabled writable checkbox if target is local-alias
    • ローカルファイルのエイリアスは "書き込み" チェックボックスを無効にした。
  • 982f2f3: remake entrance page
    • モジュールトップ画面を作り直した。
  • a3c3714: edit <h> tag
  • fc1868a: elFinder up to newly (nao-pon/elFinder - 2.x_n: 1556efb414)
  • ef572c6: elFinder up to newly (nao-pon/elFinder - 2.x_n: 8fd24c9942)
  • 44de7c3: add 'target="_blank"' into open new window link
    • フルスクリーンで開くリンクに 'target="_blank"' を追加。
  • 8bf0f0b: change module icons
    • モジュールアイコンを変更
  • 5eb11cd: change message
    • フルスクリーン -> フルウィンドウ
  • 070b462: elFinder up to newly (nao-pon/elFinder - 2.x_n: 29a7d79183)
  • 41ee327: html5 code, jquery ui updated
    • manager.php の出力を HTML5 へ。jQueryUI を 1.8.21 へ。
  • 7815c9d: remove useless php files
    • 必要のない PHP ファイルを削除しました。

      次のファイルはサーバーから削除しておいてください。
      • xoops_trust_path/libs/elfinder/php/chars-test.php
      • xoops_trust_path/libs/elfinder/php/connector.minimal.php
      • xoops_trust_path/libs/elfinder/php/connector.php
  • 4ac85f0: elFinder up to newly (nao-pon/elFinder - 2.x_n: bd9d6ec259)
  • 4820d81: edit README.md
  • 8e3298d: add charset="UTF-8" into translation script tag
    • 翻訳言語を含む <script> に charset="UTF-8 を追加。(EUC-JP環境下での文字化け対策)
  • 258bce6: edit xpwiki callback
    • xpWiki用のコールバックの画像挿入アイコンに title を設定。
  • 8206820: [mailbbs] use title as filename
    • 写メールBBSのプラグインで投稿タイトルをファイル名として使用するようにした。
  • 1faa45b: [xelfinder_db] support multi bytes filename(local alias)
    • ローカルファイルへのエイリアスで、マルチバイトのファイル名に対応
  • 752cf8e: fix non-UTF8 URL decoding problem
    • UTF-8 ではない URL をデコードしようとして、エラーになって止まる問題の修正
  • 49cd21f: Version 0.23

 
RSS of nao-pon/blog

git(github) のログを Wiki(PukiWiki) 書式に変換するシェルスクリプト anchor.png

このところ、xpWiki, HypCommonFunc や X-elFinder の開発日記で一定のフォーマットで、github での更新履歴を載せているので気づいた人もいるかも知れませんが・・・

はい、シェルスクリプトで自動抽出&変換しています。

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
-
!
-
|
|
|
|
|
|
!
-
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
!
#!/bin/sh
 
# git の log から 対象のコミットから最新までのログを PukiWiki 書式で整形する
#
# GITDIR: ローカルgit の親ディレクトリ
# LOGDIR: ログを出力するディレクトリ
# GITBASE: ローカルgit のベースネーム
# GITHUB: github上のディレクトリ名
#
 
if [ ! "$1" -o ! "$2" ]; then
    echo "引数がありません。: makelog [xpwiki|hypcommon|xelfinder] [対象の最古コミットの一つ前のコミットID]"
else
    GITDIR="/hoge/git"
    LOGDIR="/hoge/git/log"
    if [ $1 = "xpwiki" ]; then
        GITBASE="xpwiki-linked"
        GITHUB="nao-pon/xpWiki"
    elif [ $1 = "hypcommon" ]; then
        GITBASE="hyp_common-linked"
        GITHUB="nao-pon/HypCommon"
    elif [ $1 = "xelfinder" ]; then
        GITBASE="xelfinder-git"
        GITHUB="nao-pon/xelfinder"
    else
        echo "第一引数が変です。"
        exit 1
    fi
    cd $GITDIR/$GITBASE
    git log $2.. --reverse --pretty=format:'-[[%h:https://github.com/'$GITHUB'/commit/%H]]: %s%n--%b' | sed 's/&/&amp;/g' > $LOGDIR/$GITBASE.log
    sed -i ':loop; N; $!b loop; s/\n\([^-]\)/~\n\1/g' $LOGDIR/$GITBASE.log
    sed -i ':loop; N; $!b loop; s/~\n\n\([^-]\)/\n~\1/g' $LOGDIR/$GITBASE.log
fi

GITDIR, LOGDIR, GITBASE, GITHUB や $1 の if 文判定やメッセージなどは、適当に修正してください。 :-)


 
RSS of nao-pon/blog

HypCommonFunc 更新 (Ver. 20120630) PHP < 5.3 環境で HypConf の設定が正常に保存されないことがある問題の修正など anchor.png

HypCommonFunc を更新して、Ver. 20120630 としました。

ダウンロードは、HypCommonFunc のページからどうぞ。
(最新版の xpWiki には同じものが含まれています。)

Page Top

主な更新内容 anchor.png

  • f5e6038: [HypConf] add config theme name & templete set for mobile
    • モバイル対応時のテーマとテンプレートセットを設定できるようにした。
  • ee4ed5b: [Hyp_TextFilter] http:/// -> site://
    • サイト内リンク用 URLスキームを http:/// から site:// に変更
  • 68ca41d: update spamsites.dat
  • 88198cc: fix dabble quotes problem with parse_ini_file() on PHP < 5.3
    • PHP 5.2 以前は、parse_ini_file() でダブルクウォートを値に含めることが

      できないので、PHP < 5.3 向けに対応処理を追加した。 (thx nonn50)
  • 0f9bebc: Version 20120619
  • 990102c: [HypConf] Version 1.04
Page Top

html側 の更新について anchor.png

今回は HTML 側ファイルの更新はありません。



トップ 印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
567 人のユーザが現在オンラインです。 (6 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 567

もっと...
サイト情報