さて、前回の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-languages | IBM iソースのカラーモディファイ |
Kelvin.vscode-sshfs | SSHでリモートファイルを操作する |
KnisterPeter.vscode-github | github連携 |
mhutchie.git-graph | Gitの履歴を見やすくする |
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を利用して解決していきましょう。では、次回もお楽しみに!