ファイルが既に存在したら、ダウンロードに終了するオプション

このコミットが含まれているのは:
守矢諏訪子 2024-04-26 21:52:19 +09:00
コミット b485178c55
3個のファイルの変更18行の追加5行の削除

ファイルの表示

@ -2,6 +2,7 @@
* ファイル名はパラメートルを付いたら、ファイル名は拡張子に * ファイル名はパラメートルを付いたら、ファイル名は拡張子に
* 名前として保存オプション * 名前として保存オプション
* manpageの追加 * manpageの追加
* ファイルが既に存在したら、ダウンロードに終了するオプション
# 0.1.0 # 0.1.0
* 最初リリース * 最初リリース

15
main.c
ファイルの表示

@ -8,11 +8,13 @@
const char* sofname = "odl"; const char* sofname = "odl";
const char* version = "0.2.0"; const char* version = "0.2.0";
const char* avalopt = "opv";
char* filename; char* filename;
int opt; int opt;
int output_flag = 0; int output_flag = 0;
int version_flag = 0; int version_flag = 0;
int already_flag = 0;
int err_flag = 0; int err_flag = 0;
char* get_filename(const char* url) { char* get_filename(const char* url) {
@ -98,17 +100,24 @@ void flags(int opt, int argc, char* argv[]) {
case 'o': case 'o':
handle_o(argc, argv); handle_o(argc, argv);
break; break;
case 'p':
already_flag = 1;
break;
case 'v': case 'v':
version_flag = 1; version_flag = 1;
break; break;
default: default:
err_flag = 1; err_flag = 1;
printf("usage: %s-%s [-ov] [url ...]\n", sofname, version); printf("usage: %s-%s [-%s] [url ...]\n", sofname, version, avalopt);
break; break;
} }
} }
int downloader(CURL* curl, char* filename, const char* url) { int downloader(CURL* curl, char* filename, const char* url) {
if (already_flag == 1 && access(filename, F_OK) != -1) {
printf("ファイルが既に存在しますので、ダウンロードしません。\n");
return 1;
}
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
@ -137,11 +146,11 @@ int downloader(CURL* curl, char* filename, const char* url) {
int main(int argc, char* argv[]) { int main(int argc, char* argv[]) {
if (argc < 2) { if (argc < 2) {
printf("usage: %s-%s [-ov] [url ...]\n", sofname, version); printf("usage: %s-%s [-%s] [url ...]\n", sofname, version, avalopt);
return 1; return 1;
} }
while ((opt = getopt(argc, argv, "ov")) != -1) { while ((opt = getopt(argc, argv, avalopt)) != -1) {
flags(opt, argc, argv); flags(opt, argc, argv);
} }

7
odl.1
ファイルの表示

@ -3,15 +3,18 @@
odl - onrain downloader odl - onrain downloader
.SH SYNOPSIS .SH SYNOPSIS
.B odl .B odl
[-v] [-o \fI\,name\fR \fI\,file\fR] [\fI\,file\fR \fI\,...\fR] [-v] [-o \fI\,name\fR \fI\,file\fR] [-p] \fI\,file\fR [\fI\,...\fR]
.SH DESCRIPTION .SH DESCRIPTION
.PP .PP
ネットから簡単にファイルをダウンロード出来るツールです。 ネットから簡単にファイルをダウンロード出来るツールです。
.TP .TP
-\fB\o\fR \fI\,name\fR \fI\,file\fR -\fB\,o\fR \fI\,name\fR \fI\,file\fR
ファイル名を付いてダウンロードします。 ファイル名を付いてダウンロードします。
それで1回1つのファイルのみダウンロード可能です。 それで1回1つのファイルのみダウンロード可能です。
.TP .TP
-\fB\,p\fR \fI\,file\fR \fI\,...\fR
ファイルは既に存在する場合、ダウンロードしない様にします。
.TP
-\fB\,v\fR -\fB\,v\fR
バージョンを表示 バージョンを表示
.SH AUTHORS .SH AUTHORS