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

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

ファイルの表示

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

15
main.c
ファイルの表示

@ -8,11 +8,13 @@
const char* sofname = "odl";
const char* version = "0.2.0";
const char* avalopt = "opv";
char* filename;
int opt;
int output_flag = 0;
int version_flag = 0;
int already_flag = 0;
int err_flag = 0;
char* get_filename(const char* url) {
@ -98,17 +100,24 @@ void flags(int opt, int argc, char* argv[]) {
case 'o':
handle_o(argc, argv);
break;
case 'p':
already_flag = 1;
break;
case 'v':
version_flag = 1;
break;
default:
err_flag = 1;
printf("usage: %s-%s [-ov] [url ...]\n", sofname, version);
printf("usage: %s-%s [-%s] [url ...]\n", sofname, version, avalopt);
break;
}
}
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_NOPROGRESS, 0L);
@ -137,11 +146,11 @@ int downloader(CURL* curl, char* filename, const char* url) {
int main(int argc, char* argv[]) {
if (argc < 2) {
printf("usage: %s-%s [-ov] [url ...]\n", sofname, version);
printf("usage: %s-%s [-%s] [url ...]\n", sofname, version, avalopt);
return 1;
}
while ((opt = getopt(argc, argv, "ov")) != -1) {
while ((opt = getopt(argc, argv, avalopt)) != -1) {
flags(opt, argc, argv);
}

7
odl.1
ファイルの表示

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