Toconangoのブログ

プログラミングのユルフワ備忘録です。間違った記載等ありましたらご連絡頂けますと幸いです。

git あるコミットからHEADまでの差分を、削除ファイルを除外してアーカイブする

git archive を使う

※[commit]はコミットのハッシュ

[commit] ~ HEAD までの差分をアーカイブするコマンド

$ git archive --format=zip --prefix=archive/ HEAD `git diff --name-only [commit] HEAD` -o archive.zip
fatal: pathspec 'hoge.html' did not match any files

オプションの意味

git diff --name-only <commit> HEADというコマンドの出力には、削除済みファイルhoge.htmlも含まれる。

そのため、アーカイブしようとすると、そんなファイル無いと怒られる。

そこで、git diff にある --diff-filter というオプションを使って、削除ファイル名を除外する。

$ git archive --format=zip --prefix=archive/ HEAD `git diff --name-only --diff-filter=ACMRTUXB [commit] HEAD` -o archive.zip

これで、削除ファイル以外の差分ファイルがアーカイブできる。

参考

gitで差分ファイルを抽出してzipにまとめる方法 - HAM MEDIA MEMO

git diff のとき変更したファイルだけを確認する - Qiita

bootstrap-modal.jsのモーダルをスクリプトから呼び出す

参考:BootstrapのJavaScriptで、Modalを使うメモ(とても短いサンプル) - Qiita

    <div id="Dialog" class="Dialog modal hide fade">
            ご利用ありがとうございます。
    </div>
<script>
    $(function () {
        $("#Dialog").modal('show');
    });
</script>

これでページが表示された時にモーダルが表示される。

閉じるときは

$("#Dialog").modal('hide');

SublimeTextで正規表現を使って置換する

99999_99 -> 99999-99 に置換

([0-9]{5})_([0-9]{2})

または、

(\d{5})_(\d{2})

$1-$2

で置換する。

  • 正規表現は()で囲んだ部分をグループ化することができる。

  • 変数の$1、$2、・・・、$nには、()が出現した順の部分文字列が代入される。

任意の一文字

(.)

任意の文字列

.*

参考

SS | SublimeTextで正規表現の部分置換

正規表現について-正規表現サンプル集

zmv

複数のjpgのファイル名を一括で大文字に置換する

# boston_bag.jpg -> BOSTON_BAG.jpg 
zmv '(*).jpg' '${(U)1}.jpg' 

全てのアンスコをハイフンに置換する

# BOSTON_BAG.jpg  -> BOSTON-BAG.jpg
zmv '*_*' '$f:gs/_/-' 

参考

複数ファイルの名前をまとめて変更する - Qiita

zmvコマンドで複数ファイルの一括リネーム - Qiita

zmvを使ってファイルのリネームとかを簡単に行う | ごりゅご.com

Apache htmlファイルで、<?php ?>が動かない

環境

原因と対策

htmlファイル上でphpが実行可能な設定がされていないため、 <?php include("../include.html"); ?>でinclude.htmlがインクルードされなかった。

Apacheのconfに下記の2行を追加する

    AddType application/x-httpd-php-source .phps
    AddType application/x-httpd-php .php .html .htm

参考:htmlファイルでもphpを実行させる - 3割の働きアリ

Apache cgiが動かない

環境

原因と対策

1.Apacheのデフォルトページが表示される

apacheのconfのDirectoryIndexを指定する

DirectoryIndex index.cgi index.html

IfModule dir_moduleは使わないほうが良いらしい。

参考:Apache設定ファイルのIfModuleは消しておく方がよい。 - Qiita

なので、下記は非推奨

<IfModule dir_module>
    DirectoryIndex index.cgi
</IfModule>

2.cgiのソースが表示される

apacheのconfのAddHandlerを指定する

AddHandler cgi-script .cgi

3.“Forbidden You don't have permission to access /index.cgi on this server.”と表示される

apacheのconfのOptions Indexes FollowSymLinks Includes ExecCGIを設定する

<Directory "/">
    #Options Indexes FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
</Directory>

4.apacheのエラーログで”Can't locate CGI.pm”

CGI.pmがインストールされているか調査

$  find `perl -e 'print "@INC"'` -name '*.pm' -print | grep CGI
find: ‘/usr/local/lib64/perl5’: そのようなファイルやディレクトリはありません
find: ‘/usr/local/share/perl5’: そのようなファイルやディレクトリはありません

CGI.pmがインストールされていない場合、インストールする

$ sudo yum -y install perl-CGI

5.文字化けする

apacheのconfの文字コードの設定を変える

参考:Apache 文字化け対策 AddDefaultCharset | CentOSサーバ構築術 文具堂

#AddDefaultCharset UTF-8