ushiday@Hackな日々|yumでGitを使おう ~その2(牛田吉樹)

 

さて、前回のGit導入に続き、第3回は、クライアントPCの開発環境を整えましょう。
もちろん、Gitを使うのに、OSやエディタは、何でも構わないのですが、Windows、Linux、Macのどれでも利用できる、VSCode(Visual Studio Code)Windows版を使っていきたいと思います。

 

前提条件

本連載を再現する場合の前提条件は次の通りです。

 ・IBM i上のSSHが開始されている。STRTCPSVR SERVER(*SSHD)
 ・クライアントPCにgitコマンドが導入されている
 ・クライアントPCにVSCodeが導入されている。またはそれと同などのエディタ

まずは、クライアントPCにgitコマンドが、存在しない場合は導入する必要があります。Windowsの場合は、Git for Windowsより、入手しインストールする必要があります。

VSCodeは、弊社の若手もよく利用している非常に人気の高いエディタで、かなり便利な拡張機能もたくさんあります。そしてGitにも標準機能で対応しており、特別な拡張機能を入れずとも、使うことができます。

なお、gitコマンドやVSCodeの個別機能について解説をすると、本連載の趣向と外れてしまうため割愛しますが、導入方法、使い方、日本語化や設定方法の詳細は、インターネットで調べれば、たくさん情報が出てくるので、そちらが参考になるかと思います。

VSCodeでインストール済みの拡張を調べるには、左側の拡張機能アイコン(Ctrl + Shift + x )でインストール済みを確認するか、コマンドラインで次のコマンドを実行すると確認できます。 

# code –list-extensions で拡張機能の一覧が表示できる
PS C:\Users\ushida\Desktop\work\vs-code\rpg> code –list-extensions
~~~中略~~~
xyz.local-history

ちなみに、私のVSCode環境には、主に以下のような拡張機能がインストールされています。それぞれの役割は次の通りです。

拡張機能 役割
barrettotte.ibmi-languagesIBM iソースのカラーモディファイ
Kelvin.vscode-sshfsSSHでリモートファイルを操作する
KnisterPeter.vscode-githubgithub連携
mhutchie.git-graphGitの履歴を見やすくする
MS-CEINTL.vscode-language-pack-ja 日本語化
ms-vscode.powershell VSCode上でPowerShellを利用可能に
xyz.local-history ローカル変更ヒストリー

 

Gitローカル・リポジトリの準備 

以下の手順で、ローカルPCにリポジトリを準備します。

・適当な場所にフォルダを作成する。(例:C:\Users\ushida\Desktop\ushiday@Hack\iMag_git02)
・VSCodeを起動する
・[ファイル(F)]→[フォルダーを開く…]を選択し、作成したフォルダを選ぶ。(画像1)
・[ファイル(F)]→[名前をつけてワークスペースを保存]を選択し、任意の名前でワークスペースを保存する。(画像2)※次回からこのワークスペースを選択すると、・VSCodeが起動できます。
・[ソース管理]アイコンを選択し[リポジトリの初期化]ボタンを押す。(画像3)
・Gitに管理をさせないための設定 .gitignore ファイルを作成する。(画像4)

 

画像1 [ファイル(F)]→[フォルダーを開く…]を選択し、作成したフォルダを選ぶ。

画像2 [ファイル(F)]→[名前をつけてワークスペースを保存]を選択し、任意の名前でワークスペースを保存。

画像3 [ソース管理]アイコンを選択し[リポジトリの初期化]ボタンを押す。

画像4 Gitに管理をさせないための設定 .gitignore ファイルを作成する。

 

.gitignore

以下に、Git管理下に入れたくない場合の .gitignore の例を記載します。さらに不要なファイルやディレクトリがある場合は、適宜変更してください。

.gitignoreの例

# VSCodeの設定ディレクトリ
.vscode

# VSCodeのワークスペース
*.code-workspace

# ローカル・ヒストリ
.history

IBM iのソース配置先の準備

IBM iのIFS上にソース配置用のディレクトリを準備し、ソース配置方法に、VSCodeの`SSHFS`を使う場合は、以下の手順で行います。ソース配置には、ACSなどのファイル転送機能を利用しても構いません。

・IBM iのIFS上に、bashやCALL QP2TERMを使って任意のディレクトリを作成する。(画像5)

・VSCodeのSSHFS接続設定を作成する。(画像6)

   左のサイドバーより[SSH FS]アイコンを選択する。
   [CONFIGURATION]付近にカーソルを持っていき、[Create a SSH FS configuration]ボタンを出現させてクリックする
   [Name]に任意の名前の入力と、[Location]に、この接続設定の保存先を選択する。

・VSCodeのSSHFS接続設定を登録する。(画像7-1、7-2 )
   Merge(マージ有無)
   Host(接続先ホスト名/IPアドレス)、Port(SSHポート)
   Root(接続した時のルートディレクトリ)
   Username(IBM iユーザープロファイル)、      Password(パスワード、)
   Private key、Passphrase(SSH鍵認証の場合)

・VSCodeのSSHFSをワークスペースと接続する。(画像8)
   左のサイドバーより[SSH FS]アイコンを選択する。
   [CONNECTIONS]付近にカーソルを持っていき、[Add a Workspace folder]ボタンを出現させてクリックする

無事接続ができていれば、VSCode上にIFSのディレクトリが見えていると思います。(画像9)

これで、通常のフォルダの様に、IFS上のディレクトリに対して、コピー貼付けや削除などのファイル操作が、VSCode上でできるようになります。

画像5 IBM iのIFS上に、bashやCALL QP2TERMを使って任意のディレクトリを作成。

画像6 VSCodeのSSHFS接続設定を作成する。

画像7-1、7-2 VSCodeのSSHFS接続設定を登録する。

画像8 VSCodeのSSHFSをワークスペースと接続する。

画像9 無事接続ができていれば、VSCode上にIFSのディレクトリが見える。

VSCodeでIBM i用のソースを作成 

それでは、試しにサンプルのRPGソースを作成したいと思います。

VSCode上の左サイドバーの[エクスプローラー]にIMAG0001.rpgleなどソース・ファイルのメンバーに相当するファイルを作成します。そして、適当なサンプルコードを作ります。たとえば、以下のようなコード。

RPGのソース例

   H DATEDIT(*YMD)
   H DFTACTGRP(*NO) ACTGRP(*NEW)

**free

//*-——————————*
//*-—<<メインルーチン>>—–*
//*-——————————*
DSPLY (‘VSCodeで作りました ‘ + %CHAR(%DEC(%DATE():*ISO)) );
*INLR = *ON ;
RETURN ;   

その際に、VSCodeの右下にある、エンコード設定がUTF-8になっていることを確認してください。

改行コードは、CRLFでもLFでもコンパイルは通りますが、UNIX標準のLFにしておくと、混在がなくなるのでよいかと思います。(画像10)

ローカル・フォルダにRPGのソースができたら、SSH FSにファイルをコピー貼付けします。(画像11)

そして、コピーしたIFSのRPGソースをコンパイルします。5250のコマンドラインでコンパイルやSSH接続している場合は、SYSTEMコールなどがコンパイルに利用できます。(画像12)

5250コマンドの場合

CRTBNDRPG PGM(USHIDA/IMAG0001)
  SRCSTMF(‘/home/ushiday/src/ushiday@hack/iMag_git02/IMAG0001.rpgle’)
  TEXT(‘IMAG-GIT-002’)
  TGTCCSID(5035)

systemコールの場合

system”CRTBNDRPGPGM(USHIDA/IMAG0001) SRCSTMF(‘/home/ushiday/src/ushiday@hack/iMag_git02/IMAG0001.rpgle’)  TEXT(‘IMAG-GIT-002’)  TGTCCSID(5035)”

コンパイルが正常に完了していれば、サンプルプログラムを実行して、正しい結果となるはずです。(画像13)

画像10 VSCodeの右下にある、エンコード設定がUTF-8になっていることを確認。

画像11 SSH FSにファイルをコピー貼付け。

画像12 コピーしたIFSのRPGソースをコンパイル。

画像13 コンパイルが正常に完了した画面。

これで、クライアントPCにIBM iのソースコードを開発する環境が整いました。この環境が整うと、オフライン状態でもIBM iとクライアントのソースコードを編集できます。ただし、デバッグはできません。

さあ、次回は最終回です、前回お話したバッド・ノウハウをGitを利用して解決していきましょう。では、次回もお楽しみに!