バッチファイルをダブルクリックすると、リモートリポジトリを作成する。
入手先
- MEGAがまたしても使えない。何度目か
前回
前回はコンソール上で実行した。
今回はバッチファイル&シェルスクリプトにした。
コード
CreateRepository.sh
文字コード | 改行コード |
---|---|
UTF-8(BOM無) | CR+LF |
#!/bin/sh
echo "-----------------------------------------" | nkf -s
echo "GitHubにリモート・リポジトリを作成します。" | nkf -s
echo "-----------------------------------------" | nkf -s
CURL_PEM="C:\Program Files\Git\ssl\certs\cacert.pem"
GITHUB_USER="YourUsername"
GITHUB_PASS="YourPassword"
REPO_DESC="日本語の説明です。"
REPO_HOME="https://www.google.co.jp"
# このファイルの親ディレクトリ名をリポジトリ名とする
REPO_NAME=`dirname "$0"`
REPO_NAME=`basename ${REPO_NAME}`
echo "curl --cacert : ${CURL_PEM}" | nkf -s
echo "GitHub Username : ${GITHUB_USER}" | nkf -s
echo "GitHub Password : ${GITHUB_PASS}" | nkf -s
echo "GitHub Repository name : ${REPO_NAME}" | nkf -s
echo "GitHub Repository description : ${REPO_DESC}" | nkf -s
echo "GitHub Repository homepage : ${REPO_HOME}" | nkf -s
echo '{"name":"'${REPO_NAME}'","description":"'${REPO_DESC}'","homepage":"'${REPO_HOME}'"}' | nkf -w | curl --cacert "${CURL_PEM}" -u "${GITHUB_USER}:${GITHUB_PASS}" https://api.github.com/user/repos -d @- | nkf -s
echo "-----------------------------------------" | nkf -s
echo "完了しました。" | nkf -s
# echo "Enterキーを入力してください。" | nkf -s
echo "-----------------------------------------" | nkf -s
# read Wait
CallShell.bat
文字コード | 改行コード |
---|---|
CP932(Shift-JIS) | CR+LF |
@echo off
set sh="C:\MinGW_GET\msys\1.0\bin\sh.exe"
:: スクリプトのフルパス。
:: * 絶対パス(相対パスを渡してもcmd.exeとsh.exeのカレントディレクトリが異なるため動作しない)
:: * 英数記号のみ(日本語を含むパスは使えない)
set ShellFileName="CreateRepository.sh"
set ShellFile="%~dp0%ShellFileName%"
:: パスの\を/に置換する。
set ShellFileUnix=%ShellFile:\=/%
echo %ShellFileUnix%
:: シェルスクリプトを実行する
call %sh% --login -i -c %ShellFileUnix%
pause
@echo on
使い方
- プロジェクトのルートディレクトリを作成する
- プロジェクトのルートディレクトリに上記
CallShell.bat
,CreateRepository.sh
ファイルを配置する CreateRepository.sh
の変数を任意に設定するCallShell.bat
をダブルクリックする- GitHubサイトにてリモート・リポジトリが作成されていることを確認する
例
ディレクトリ構成
- ProjectDir/
- CallShell.bat
- CreateRepository.sh
手順
CallShell.bat
をダブルクリックする- リモートリポジトリ
ProjectDir
が作成される
CreateRepository.sh
以下のパラメータを任意のものに変更する。
- CURL_PEM="C:\Program Files\Git\ssl\certs\cacert.pem"
- GITHUB_USER="YourUsername"
- GITHUB_PASS="YourPassword"
- REPO_DESC="日本語の説明です。"
- REPO_HOME="https://www.google.co.jp"
リポジトリ名について
リモートリポジトリ名はCreateRepository.sh
ファイルの親ディレクトリ名とおなじ名前になる。
ディレクトリ名は半角英数字と.
,-
,_
の文字だけにすること。
リモートリポジトリがその文字しか使えないため。
たとえば+
の記号はリモートリポジトリ名に使えない。
GitHubのサイトからリポジトリ名を入力するとき、+
など使えない文字を入力すると-
に置換された。
おそらく使えない文字は自動的に-
に置換されるのだろう。
WebAPIで実行するとどうなるのかは未確認。
また、リモートリポジトリ名は大文字と小文字が区別されるのかどうかは知らない。 Windowsのファイルシステムでは区別しない。
使用できる文字
種類 | 値 |
---|---|
半角英数字 | 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ |
記号 | _-. |
ちなみに、先頭が3
など数字でもOK。
C言語の変数名のように先頭文字に数字が使えないということはない。
使用できない文字
使用できる文字以外はすべて使用できない。
以下のような文字は使えない。
種類 | 値 |
---|---|
記号 | !"#$%&'()=~|@{}[];+:*,<>/?\ ` |
空白 | (半角スペース) |
制御コード | \t (タブ), \r\n (改行コード) |
全角文字 | (ひらがな、カタカナ、漢字、数字、英字、記号) |
他 | 他すべて |
所感
自動化はすばらしい。これで仕事がひとつ減らせる。アウトプットが捗る。