s2e-core
s2e-core copied to clipboard
Add rule for file path
Overview
Add specific rule for file path of config or data.
Details
Currently, no rule for (config/data) file path.
Some file paths are embed in user's code and it looks like ../../data/SampleSat/ini/SampleSimBase.ini.
It causes lack of portability.
So, we must be make default file path strategy.
Conditions for close
When xxx is complete.
Supplement
Write additional comments if you need.
Note
- If there are related Projects, tie them together.
- Set
prioritylabel if possible. - Assignees should be set if possible.
- Write a conclusion when closing the issue.
../data みたいなやつは環境変数とかから読むべきだよな,みたいなのもあります(もちろんデフォルト値はあっていいけど)
たぶん一番影響が大きいのはiniファイル群で,ここにつらつらと../../data/SampleSatみたいなやつ書きたくないよね,という方がモチベーションが大きいかも(設定ファイル内にある相対パスがプロセスのCWDに依存しているのは渋い)
で,前に考えた時はiniファイル内で${S2E_DATA_DIR}みたいな変数展開をできるようにするか?みたいなことを思ったけど,どちらかというと設定ファイルを開くところにファイル探索の概念を与えてやって,最初に探索するディレクトリを環境変数で与えて,無かったらCWDからの相対パスに切り替えて探す,みたいなかんじにすると互換性保てる.
そしてiniファイル読み込み部分がWinかどうかでソースコード切り替わってることに今更気付いた(Winでもinih使ってると思ってた)
これはWin32 APIのGetPrivateProfileIntA(), GetPrivateProfileStringA()に依存しているからで,これがめっちゃ便利とかでもなければ(まあ抽象化して同じクラスにしてるんだからそんなことない気がするが)マージしたいかも
#159 で一旦雑にファイルをマージした(Win32部分はifdef)ので,これの後にinihに統一したい.が,その前にIniAccessがCSVファイルも読み書きしてるのは非自明すぎるので,ここをどうにかしたいかも.
環境変数でどうにか,みたいなことを考えたけど,Windowsだと渋いしそもそもglobalな共通の設定ファイルがいればよかろうとなったので, #160 でやっていく.また,これをTOMLにしておくことでINI -> TOMLの移行の布石にもなる.