s2e-core icon indicating copy to clipboard operation
s2e-core copied to clipboard

Add rule for file path

Open sksat opened this issue 3 years ago • 7 comments
trafficstars

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 priority label if possible.
  • Assignees should be set if possible.
  • Write a conclusion when closing the issue.

sksat avatar Jul 04 '22 07:07 sksat

../data みたいなやつは環境変数とかから読むべきだよな,みたいなのもあります(もちろんデフォルト値はあっていいけど)

sksat avatar Jul 04 '22 07:07 sksat

たぶん一番影響が大きいのはiniファイル群で,ここにつらつらと../../data/SampleSatみたいなやつ書きたくないよね,という方がモチベーションが大きいかも(設定ファイル内にある相対パスがプロセスのCWDに依存しているのは渋い)

sksat avatar Jul 04 '22 07:07 sksat

で,前に考えた時はiniファイル内で${S2E_DATA_DIR}みたいな変数展開をできるようにするか?みたいなことを思ったけど,どちらかというと設定ファイルを開くところにファイル探索の概念を与えてやって,最初に探索するディレクトリを環境変数で与えて,無かったらCWDからの相対パスに切り替えて探す,みたいなかんじにすると互換性保てる.

sksat avatar Jul 04 '22 07:07 sksat

そしてiniファイル読み込み部分がWinかどうかでソースコード切り替わってることに今更気付いた(Winでもinih使ってると思ってた)

sksat avatar Jul 04 '22 08:07 sksat

これはWin32 APIのGetPrivateProfileIntA(), GetPrivateProfileStringA()に依存しているからで,これがめっちゃ便利とかでもなければ(まあ抽象化して同じクラスにしてるんだからそんなことない気がするが)マージしたいかも

sksat avatar Jul 04 '22 08:07 sksat

#159 で一旦雑にファイルをマージした(Win32部分はifdef)ので,これの後にinihに統一したい.が,その前にIniAccessがCSVファイルも読み書きしてるのは非自明すぎるので,ここをどうにかしたいかも.

sksat avatar Jul 04 '22 10:07 sksat

環境変数でどうにか,みたいなことを考えたけど,Windowsだと渋いしそもそもglobalな共通の設定ファイルがいればよかろうとなったので, #160 でやっていく.また,これをTOMLにしておくことでINI -> TOMLの移行の布石にもなる.

sksat avatar Jul 04 '22 11:07 sksat