From b485178c55237aa844205260fdb8f3797bd33c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Fri, 26 Apr 2024 21:52:19 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=8C?= =?UTF-8?q?=E6=97=A2=E3=81=AB=E5=AD=98=E5=9C=A8=E3=81=97=E3=81=9F=E3=82=89?= =?UTF-8?q?=E3=80=81=E3=83=80=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E3=81=AB=E7=B5=82=E4=BA=86=E3=81=99=E3=82=8B=E3=82=AA=E3=83=97?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + main.c | 15 ++++++++++++--- odl.1 | 7 +++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18c079f..1290c22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * ファイル名はパラメートルを付いたら、ファイル名は拡張子に * 名前として保存オプション * manpageの追加 +* ファイルが既に存在したら、ダウンロードに終了するオプション # 0.1.0 * 最初リリース diff --git a/main.c b/main.c index 4280305..a3e1800 100644 --- a/main.c +++ b/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); } diff --git a/odl.1 b/odl.1 index 1bc5d6c..ebee70a 100644 --- a/odl.1 +++ b/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