aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-07-04 22:33:59 +0200
committerRobin Krahl <robin.krahl@ireas.org>2020-07-04 23:34:40 +0200
commit97edc164488352897eec1313b63d42aa06bb87a8 (patch)
tree52b547297601b998892faa884629969b815af631
downloadbibdirsync-master.tar.gz
bibdirsync-master.tar.bz2
Initial commitHEADmaster
-rw-r--r--.builds/archlinux-msrv.yml19
-rw-r--r--.builds/archlinux.yml14
-rw-r--r--.builds/lint.yml27
-rw-r--r--.gitignore5
-rw-r--r--Cargo.lock10
-rw-r--r--Cargo.toml16
-rw-r--r--LICENSES/CC0-1.0.txt119
-rw-r--r--LICENSES/MIT.txt21
-rw-r--r--README.md47
-rw-r--r--src/main.rs10
10 files changed, 288 insertions, 0 deletions
diff --git a/.builds/archlinux-msrv.yml b/.builds/archlinux-msrv.yml
new file mode 100644
index 0000000..85d494a
--- /dev/null
+++ b/.builds/archlinux-msrv.yml
@@ -0,0 +1,19 @@
+# Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: CC0-1.0
+image: archlinux
+packages:
+ - rustup
+sources:
+ - https://git.ireas.org/bibdirsync
+tasks:
+ - setup: |
+ rustup set profile minimal
+ rustup default 1.34.2
+ - version: |
+ rustc -V
+ - build: |
+ cd bibdirsync
+ cargo build --release
+ - test: |
+ cd bibdirsync
+ cargo test
diff --git a/.builds/archlinux.yml b/.builds/archlinux.yml
new file mode 100644
index 0000000..f381f32
--- /dev/null
+++ b/.builds/archlinux.yml
@@ -0,0 +1,14 @@
+# Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: MIT
+image: archlinux
+packages:
+ - rust
+sources:
+ - https://git.ireas.org/bibdirsync
+tasks:
+ - build: |
+ cd bibdirsync
+ cargo build --release
+ - test: |
+ cd bibdirsync
+ cargo test
diff --git a/.builds/lint.yml b/.builds/lint.yml
new file mode 100644
index 0000000..5012dea
--- /dev/null
+++ b/.builds/lint.yml
@@ -0,0 +1,27 @@
+# Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: MIT
+image: archlinux
+packages:
+ - rustup
+ - python
+ - python-pip
+ - python-pygit2
+sources:
+ - https://git.ireas.org/bibdirsync
+tasks:
+ - setup: |
+ pip install --user fsfe-reuse
+ rustup update stable
+ rustup self upgrade-data
+ rustup default stable
+ rustup component add rustfmt
+ rustup component add clippy
+ - format: |
+ cd bibdirsync
+ cargo fmt -- --check
+ - reuse: |
+ cd bibdirsync
+ ~/.local/bin/reuse lint
+ - clippy: |
+ cd bibdirsync
+ cargo clippy -- -D warnings
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e1b5d9d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+# Copyright (C) 2019 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: CC0-1.0
+/target
+**/*.rs.bk
+*.swp
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..5f47eff
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,10 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+# Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: CC0-1.0
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "bibdirsync"
+version = "0.1.0"
+
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..b51ddc7
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,16 @@
+# Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+# SPDX-License-Identifier: CC0-1.0
+
+[package]
+name = "bibdirsync"
+version = "0.1.0"
+authors = ["Robin Krahl <robin.krahl@ireas.org>"]
+edition = "2018"
+repository = "https://git.ireas.org/bibdirsync/"
+description = "Synchronization between BibTeX bibliographies and local directories"
+keywords = ["bibtex", "bibliography", "synch", "pdf", "download"]
+categories = ["command-line-utilities"]
+readme = "README.md"
+license = "MIT"
+
+[dependencies]
diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt
new file mode 100644
index 0000000..a343ccd
--- /dev/null
+++ b/LICENSES/CC0-1.0.txt
@@ -0,0 +1,119 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES
+NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE
+AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
+ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE
+OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS
+LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION
+OR WORKS PROVIDED HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer exclusive
+Copyright and Related Rights (defined below) upon the creator and subsequent
+owner(s) (each and all, an "owner") of an original work of authorship and/or
+a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific
+works ("Commons") that the public can reliably and without fear of later claims
+of infringement build upon, modify, incorporate in other works, reuse and
+redistribute as freely as possible in any form whatsoever and for any purposes,
+including without limitation commercial purposes. These owners may contribute
+to the Commons to promote the ideal of a free culture and the further production
+of creative, cultural and scientific works, or to gain reputation or greater
+distribution for their Work in part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any expectation
+of additional consideration or compensation, the person associating CC0 with
+a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
+and publicly distribute the Work under its terms, with knowledge of his or
+her Copyright and Related Rights in the Work and the meaning and intended
+legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be protected
+by copyright and related or neighboring rights ("Copyright and Related Rights").
+Copyright and Related Rights include, but are not limited to, the following:
+
+i. the right to reproduce, adapt, distribute, perform, display, communicate,
+and translate a Work;
+
+ ii. moral rights retained by the original author(s) and/or performer(s);
+
+iii. publicity and privacy rights pertaining to a person's image or likeness
+depicted in a Work;
+
+iv. rights protecting against unfair competition in regards to a Work, subject
+to the limitations in paragraph 4(a), below;
+
+v. rights protecting the extraction, dissemination, use and reuse of data
+in a Work;
+
+vi. database rights (such as those arising under Directive 96/9/EC of the
+European Parliament and of the Council of 11 March 1996 on the legal protection
+of databases, and under any national implementation thereof, including any
+amended or successor version of such directive); and
+
+vii. other similar, equivalent or corresponding rights throughout the world
+based on applicable law or treaty, and any national implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
+and Related Rights and associated claims and causes of action, whether now
+known or unknown (including existing as well as future claims and causes of
+action), in the Work (i) in all territories worldwide, (ii) for the maximum
+duration provided by applicable law or treaty (including future time extensions),
+(iii) in any current or future medium and for any number of copies, and (iv)
+for any purpose whatsoever, including without limitation commercial, advertising
+or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
+benefit of each member of the public at large and to the detriment of Affirmer's
+heirs and successors, fully intending that such Waiver shall not be subject
+to revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+judged legally invalid or ineffective under applicable law, then the Waiver
+shall be preserved to the maximum extent permitted taking into account Affirmer's
+express Statement of Purpose. In addition, to the extent the Waiver is so
+judged Affirmer hereby grants to each affected person a royalty-free, non
+transferable, non sublicensable, non exclusive, irrevocable and unconditional
+license to exercise Affirmer's Copyright and Related Rights in the Work (i)
+in all territories worldwide, (ii) for the maximum duration provided by applicable
+law or treaty (including future time extensions), (iii) in any current or
+future medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional purposes
+(the "License"). The License shall be deemed effective as of the date CC0
+was applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder of
+the License, and in such case Affirmer hereby affirms that he or she will
+not (i) exercise any of his or her remaining Copyright and Related Rights
+in the Work or (ii) assert any associated claims and causes of action with
+respect to the Work, in either case contrary to Affirmer's express Statement
+of Purpose.
+
+ 4. Limitations and Disclaimers.
+
+a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,
+licensed or otherwise affected by this document.
+
+b. Affirmer offers the Work as-is and makes no representations or warranties
+of any kind concerning the Work, express, implied, statutory or otherwise,
+including without limitation warranties of title, merchantability, fitness
+for a particular purpose, non infringement, or the absence of latent or other
+defects, accuracy, or the present or absence of errors, whether or not discoverable,
+all to the greatest extent permissible under applicable law.
+
+c. Affirmer disclaims responsibility for clearing rights of other persons
+that may apply to the Work or any use thereof, including without limitation
+any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims
+responsibility for obtaining any necessary consents, permissions or other
+rights required for any use of the Work.
+
+d. Affirmer understands and acknowledges that Creative Commons is not a party
+to this document and has no duty or obligation with respect to this CC0 or
+use of the Work.
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 0000000..741cbc3
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 Robin Krahl <robin.krahl@ireas.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4bf53d4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+<!---
+SPDX-FileCopyrightText: 2020 Robin Krahl <robin.krahl@ireas.org>
+SPDX-License-Identifier: MIT
+-->
+
+# bibdirsync
+
+A command-line tool that synchronizes BibTeX bibliographies and local
+directories.
+
+## Examples
+
+Download PDF files for the items in a bibliography file:
+```
+$ bibdirsync fetch references.bib
+```
+
+Extract bibliography information from a PDF file and add it to a
+bibliography file:
+```
+$ bibdirsync import docs/interesting-article.pdf references.bib
+```
+
+Synchronize a bibliography file and a local directory by adding new items to
+the bibliography file and downloading missing PDF files:
+```
+$ bibdirsync sync docs references.bib
+```
+
+## Minimum Supported Rust Version
+
+This crate supports Rust 1.34.2 or later.
+
+## Contact
+
+For bug reports, patches, feature requests or other messages, please send a
+mail to [bibdirsync-dev@ireas.org][].
+
+## License
+
+This project is licensed under the [MIT License][].
+
+`dialog-rs` complies with [version 3.0 of the REUSE specification][reuse].
+
+[bibdirsync-dev@ireas.org]: mailto:bibdirsync-dev@ireas.org
+[MIT license]: https://opensource.org/licenses/MIT
+[reuse]: https://reuse.software/practices/3.0/
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..ef8a6ea
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,10 @@
+// Copyright (C) 2019 Robin Krahl <robin.krahl@ireas.org>
+// SPDX-License-Identifier: MIT
+
+#![warn(missing_docs, rust_2018_compatibility, rust_2018_idioms, unused)]
+
+//! A command-line tool that synchronizes BibTeX bibliographies and local directories.
+
+fn main() {
+ println!("Hello, world!");
+}