#include <stdio.h>
#include "src/sync.h"
#include "src/search.h"
#include "src/depinst.h"
#include "src/isinst.h"
#include "src/diff.h"
const char* sofname = "fugu";
const char* version = "0.0.1";
void help() {
printf("076 fugu - OpenBSD向けのパッケージマネージャー\n");
printf("https://076.moe/ | https://gitler.moe/suwako/fugu\n\n");
printf("使い方:\n");
printf("%s sync :利用可能パッケージの一覧を更新\n", sofname);
printf("%s sysup :全てのペッケージを更新する\n", sofname);
printf("%s diff :更新出来るペッケージを表示する\n", sofname);
printf("%s search <package> :パッケージを検索\n", sofname);
printf("%s update <package> :パッケージを更新する\n", sofname);
printf("%s remove <package> :パッケージを削除\n", sofname);
printf("%s depinst <package> :パッケージをインストール\n", sofname);
printf("%s isinst <package> :パスワードがインストール済みかどうかを確認\n", sofname);
printf("%s help :ヘルプを表示\n", sofname);
printf("%s version :バージョンを表示\n", sofname);
}
int main(int argc, char **argv) {
if (argc < 2) {
help();
return 1;
}
if (strcmp(argv[1], "search") == 0) {
search(argv[2]);
} else if (strcmp(argv[1], "sync") == 0) {
sync();
} else if (strcmp(argv[1], "depinst") == 0) {
char chroot[1024];
snprintf(chroot, sizeof(chroot), "/tmp/fugu/%s", argv[2]);
const char *pkg = dlpkg(argv[2], chroot);
if (pkg != NULL) {
install(pkg, chroot);
free((void *)pkg);
} else {
fprintf(stderr, "パッケージ「%s」をダウンロードに失敗。\n", argv[2]);
}
} else if (strcmp(argv[1], "diff") == 0) {
diffinst();
} else if (strcmp(argv[1], "update") == 0) {
printf("TODO: update\n");
} else if (strcmp(argv[1], "remove") == 0) {
printf("TODO: remove\n");
} else if (strcmp(argv[1], "sysup") == 0) {
printf("TODO: sysup\n");
} else if (strcmp(argv[1], "isinst") == 0) {
for (size_t i = 2; i < argc; i++) {
int chk = checkinst(argv[i]);
// 結果
if (chk == -1) {
printf("%sは存在しない\n", argv[i]);
} else if (chk == 1) {
printf("%sは未インストール\n", argv[i]);
} else if (chk == 0) {
printf("%sはインストール済み\n", argv[i]);
}
}
} else if (strcmp(argv[1], "version") == 0) {
printf("%s-%s\n", sofname, version);
} else {
help();
}
return 0;
}