r4wpkgコマンドについて
r4wpkgは、Ros4Winのための簡易パッケージマネージャーです。リポジトリサイトと連携してパッケージのダウンロード、インストール、アンインストール、アップデートの確認などを行います。
リポジトリサイトとの連携処理
- get_pkg_hash_value
 - pkg_hash.cgi_name=XXX
 - get_package
 - pkg_get.cgi?name=XXX
 - get_pkg_dep
 - pkg_dep.cgi?name=XXX&type=json
 - get_pkg_list
 - pkg_list.cgi?name=XXX
 
Sqlite関連処理
- create_db_table(name, schema, dbname)
 - DBテーブル作成
 - exec_sql(sql, dbname)
 - SQLの実行
 - insert_pkg_data
 - packagesテーブルにアイテムを追加
 - get_pkg_dara(name, dbname)
 - packagesテーブルからnameに適合したアイテムの取得
 - get_installed_pkgs_list(dbname)
 - packagesテーブルのアイテムをすべて取得
 - delete_pkg_data(name, dbname)
 - packagesテーブルからnameに適合したアイテムを削除
 - register_info(dbname, pkgname, fname)
 - install_infoテーブルにアイテムを追加
 - get_installed_files(name, dbname)
 - install_infoテーブルからnameに適合したアイテムを取得
 - delete_installed_file?entries(name, dbname)
 - install_infoテーブルからnameに適合したアイテムを削除
 - get_installed_packages(dbname)
 - install_infoテーブルから重複していないnameのエントリを取得
 
untar関数について
実装したuntar関数では、tgzファイルの進捗付き解凍を行う。このコマンドは、dbの名前が指定されれば、Sqliteデータベースを作成して、install_pkg_dataでファイル名(パッケージ名に相当)を登録する。また、各ファイルの解凍時に、register_info関数で展開したファイル名を登録していく。この情報は、remove_pkg_file_all関数で使われる
remove_pkg_file_all関数
この関数は、Sqliteデータベースに登録されている情報を使って、パッケージにアンインストールを行う。引数は、パッケージ名とインストールされているドライブレターであることに注意。(本来は、要調整)
get_installed_filesコマンドでファイルリストを取得して、各ファイルと空になったディレクトリを削除する。ファイルの削除後に、delete_install_file_entries関数と、delete_pkg_data関数を呼び出して、データベースを更新する。




