Commit Graph

48 Commits

Author SHA1 Message Date
Thomas Gardner
97ab785b7c
Implement FromStr for MagnetLink
type: added
2020-10-17 17:27:10 -07:00
Casey Rodarmor
164a87d7ad
Release v0.1.12
- Bump version: 0.1.11 → 0.1.12
- Update dependencies

type: release
2020-10-02 19:54:29 -07:00
Celeo
0c17c3da49
Optionally print torrent details as JSON
Adds `--json` flag to `imdl torrent show` to print torrent details as
JSON.

type: added
2020-10-01 22:28:40 -07:00
Casey Rodarmor
8ca2765259
Release v0.1.11
- Bump version: 0.1.10 → 0.1.11
- Update dependencies
- Remove deprecated lto flag from package script
- Invalidate github cache

type: release
2020-09-06 22:04:12 -07:00
Casey Rodarmor
705014c87e
Release v0.1.10
- Bump version: 0.1.9 → 0.1.10

type: release
2020-06-24 03:44:11 -07:00
Casey Rodarmor
5951139fdf
Release v0.1.9
- Bump version: 0.1.8 → 0.1.9
- Update dependencies
- Publish to cargo as last step in publish recipe

type: release
2020-06-23 22:04:53 -07:00
Casey Rodarmor
9dea195694
Release v0.1.8
- Bump version: 0.1.7 → 0.1.8
- Update dependencies

type: release
2020-05-26 14:04:15 -07:00
Casey Rodarmor
4e6b475470
Benchmark and improve hashing performance
- Add a `bench` feature that exposes a hasher benchmark.

- Make the hasher read up to the next piece end and hash everything it
  reads, instead of hashing one byte at a time. This was a 4x
  improvement on the benchmark. (Terrible code == easy wins!)

type: performance
2020-05-26 00:15:09 -07:00
Casey Rodarmor
c1c8d3cb89
Move data crate to its own repo
I suspect that the `data` crate will get more review, use, and
contributors if it lives in its own repository, so move it to
casey/data.

type: removed
2020-05-24 05:30:42 -07:00
Casey Rodarmor
173c0e5ac5
Initial commit of the data crate
The `data` crate is intended to be used as the manifest serialization
and deserialization format.

This blog post describes the motivation and goals for this crate:

    https://rodarmor.com/blog/data

type: added
2020-05-10 21:38:59 -07:00
Casey Rodarmor
213624cf8e
Metainfo refactoring
- Combine test Metainfo values into a small number of globally available
  values.
- Serialize update URLs as `URL` insted of `String`.
- Add additional `show` tests

type: reform
2020-05-04 03:10:21 -07:00
Casey Rodarmor
f217ac659a
Release v0.1.7
- Bump version: 0.1.6 → 0.1.7
- Update dependencies

type: release
2020-04-22 13:15:28 -07:00
Casey Rodarmor
134c241ae7
Use lexiclean crate for lexical path cleaning
I moved all the lexical path cleaning functionality into a separate
crate, so it can be used by other projects.

type: reform
2020-04-21 23:10:34 -07:00
Celeo
9b72873ed1
Optionally respect .gitignore in imdl torrent create
Add a '--ignore' flag that, when passed, causes `imdl torretn create` to
skip files listed in `.gitignore`, `.ignore`, `.git/info/exclude`, and
`git config --get core.excludesFile`.

Also switches from the `walkdir` crate to the `ignore` crate, which uses
`walkdir` internally, and which handles `.gitignore` and `.ignore`
files.

This changes the behavior of `-include-hidden` on MacOS to no longer
skip entries with the hidden attribute set, due to `ignore` not exposing
`walkdir`'s filter functionality.

A PR[0] is pending to add filtering to `ignore`, so hopefully this
functionality can be re-implemented soon.

[0] https://github.com/BurntSushi/ripgrep/pull/1557

type: added
fixes:
- https://github.com/casey/intermodal/issues/378
2020-04-20 19:20:12 -07:00
Casey Rodarmor
85246d816c
Release v0.1.6
- Bump version: 0.1.5 → 0.1.6
- Update dependencies
- Regenerate documentation

type: release
2020-04-19 23:27:32 -07:00
Casey Rodarmor
04338e3501
Merge documentation and changelog generation
Merge documentation generation into a single binary, `bin/gen`. This
includes: The changelog, man pages, the readme, and the book.

type: reform
2020-04-17 21:31:54 -07:00
Casey Rodarmor
707fdea21d
Release v0.1.5
- Bump version: 0.1.4 -> 0.1.5
- Update changelog
- Update man page
- Update book

type: release
pr: https://github.com/casey/intermodal/pull/366
2020-04-11 04:28:23 -07:00
Casey Rodarmor
f070c62b12
Release v0.1.4
- Bump version: 0.1.3
- Update dependencies
- Update generated documentation

type: release
pr: https://github.com/casey/intermodal/pull/354
2020-04-10 15:32:32 -07:00
Casey Rodarmor
8e6a2b0034
Release v0.1.3
- Bump version: 0.1.2 -> 0.1.3
- Update changelog
- Update book
- Add `update` recipe

type: release
2020-04-09 17:30:04 -07:00
Casey Rodarmor
268c62b66d
Add bin/man command for generating man pages
Generates man pages and book entries for all subcommands, and keeps the
commands index in the book up to date.

There is much cursed roff munging in this diff.

type: documentation
2020-04-09 15:23:12 -07:00
Casey Rodarmor
685883f026
Release v0.1.2
- Bump version: v0.1.2 -> v0.2.3
- Update man page
- Update changelog
- Update release recipe

type: release
2020-04-07 23:58:20 -07:00
Casey Rodarmor
c33446b481
Generate changelog from git history
type: development
pr: https://github.com/casey/intermodal/pull/337
fixes:
- https://github.com/casey/intermodal/issues/336
2020-04-07 19:59:09 -07:00
Casey Rodarmor
57e482f4b3
Record demo for readme
Uses a crate in `bin/demo` to output a demo script of commands, with a
per-character and per-line delay, and a dummy prompt. Capture output
and render to a gif.

type: documentation
2020-04-07 19:01:38 -07:00
Casey Rodarmor
93c23d29f2
Release v0.1.1
- Bump version: 0.1.0 -> 0.1.1
- Update changelog

type: release
2020-04-07 19:01:37 -07:00
Casey Rodarmor
328a3adeaf
Release v0.1.0
- Bump version: `0.0.3` -> `0.1.0`
- Update changelog
- Update dependencies
- Publish to crates.io as last step in publish recipe

type: release
2020-04-07 19:01:33 -07:00
Casey Rodarmor
362a81d42f
Use strum crate to derive enum↔string conversions
type: reform
2020-04-07 19:01:33 -07:00
Casey Rodarmor
6328118c00
Use open crate to open files and URLs
Opening URLs on Windows is very complex, so delegate to the
`open` crate.

type: changed
2020-04-07 19:01:31 -07:00
Casey Rodarmor
5d4baa22ea
Release v0.0.3
- Bump version: `0.0.2` -> `0.0.3`
- Update changelog

type: release
2020-04-07 19:01:29 -07:00
Casey Rodarmor
8b3954ff99
Release v0.0.2
- Bump version: `0.0.1` -> `0.0.2`
- Update chnagelog

type: release
2020-04-07 19:01:29 -07:00
Casey Rodarmor
57a358e458
Allow creating magnet links with imdl torrent link
Magnet links can now be created from a metainfo file with:

    imdl torrent link --input METAINFO

type: added
2020-04-07 19:01:27 -07:00
Casey Rodarmor
1cac9ab924
Use imdl-indicatif
The `0.1.0` release is coming up, and a prerequisite to publish to
crates.io is to not depend on any non crates.io dependency.

We're using the `{binary_bytes_per_sec}` formatting spec, which is only
in my fork.

I published my fork to crates.io as `imdl-indicatif`, and this diff
starts depending on that fork.

type: distribution
2020-04-07 19:01:27 -07:00
Casey Rodarmor
0033e8381f
Test imdl torrent verify output
- Test all individual `FileError` variants
- Test terminal colors
- Test multiple and single file torrents

type: testing
2020-04-07 19:01:27 -07:00
Casey Rodarmor
f1cc12858c
Use bendy dep from crates.io instead of GitHub
type: distribution
2020-04-07 19:01:26 -07:00
Casey Rodarmor
4371bb1402
Improve spinner and progress bar
- Switch to my branch of indicatif on github
- Use binary braille spinner
- Use fine-grained progress bar
- Improve template formatting
- Use SI units for bytes/s

type: changed
2020-04-07 19:01:16 -07:00
Casey Rodarmor
b25b389ae6
Rename Target to OutputTarget
Making it specific to output allows us to be more specific in the
display message, and possibly add output-specific code in the future.

type: reform
2020-04-07 19:01:16 -07:00
RJ Rybarczyk
c6cd78f565
Add progress messages to imdl torrent create
- Add messages showing overall progress
- Add file search spinner

type: added
2020-04-07 19:01:15 -07:00
Casey Rodarmor
6549850dac
Add initial implementation of imdl torrent verify
Adds the command `imdl` torrent verify` to verify the contents of torrents.

This implementation is extremely naive. It does successfully verify torrents,
but it will produce unsatisfying results when a torrent fails verification. In
particular, it won't give any information about which pieces in a file were
corrupt.

type: added
2020-04-07 19:01:05 -07:00
Casey Rodarmor
b0f449b6ae
Drop serde_bencode in favor of bendy
For now depend on my branch on Github, until serde support and the value
type land in the main repo.

type: reform
2020-04-07 19:01:05 -07:00
Casey Rodarmor
a574368ffc
Allow including and excluding files from torrent with globs
To include only files that match a glob, pass `--glob GLOB`. To exclude
files that match a glob, pass `--glob GLOB`. Multiple globs may be
passed, with later globs taking precedence over earlier ones.

type: added
2020-04-07 19:01:04 -07:00
Casey Rodarmor
5a1de1acd2
Select piece length when none is provided
When no piece length is provided to imdl torrent create, a piece
length is selected based on the size of the input. The hueristic is
lifted directly from libtorrent.

Also adds a imdl torrent piece-length command, which prints a table
of the piece lengths chosen at different content sizes, which is useful
for understanding and debugging the piece length selection algorithm.

type: added
2020-04-07 19:01:03 -07:00
Casey Rodarmor
99a069a021
Add imdl torrent show
The `imdl torrent show` command displays information about on-disk
torrent files. The formatting of the command's output is copied from
torf, an excellent command-line torrent creator, editor, and viewer.

type: added
2020-04-07 19:01:02 -07:00
Casey Rodarmor
9dd8a56298
Release v0.0.1
- Add changelog
- Update publish-check recipe to match github actions
- Add publish recipe
- Update dependencies
- Add minimimal-deps compatibility check

type: release
2020-04-07 19:00:59 -07:00
Casey Rodarmor
7d5e68f194
Enable --help text wrapping
type: changed
2020-04-07 19:00:58 -07:00
Casey Rodarmor
1f5b829742
Add table of contents to readme
type: documentation
2020-04-07 19:00:48 -07:00
Casey Rodarmor
66d44155f0
Add BEP support table to readme
Also adds `bin/bin/generate-bep-table.rs`, which generates and updates
the table from a collection of BEPs.

type: documentation
2020-04-07 19:00:48 -07:00
Casey Rodarmor
d1f8f24d8e
Add colored output
Colored output can be controlled on the command line with
`--use-color auto|always|never`. The default is `auto`, which enables
color if `imdl` detects that it is printing to a terminal.

Color can be disabled entirely by setting the `NO_COLOR` environment
variable.

type: added
2020-04-07 19:00:47 -07:00
Casey Rodarmor
9f83661374
Configure clippy and lint on push
Enable as many lints as I can stand. I'll definitely add more exceptions as
`clippy::pedantic` and `clippy::restriction` wear me down.

type: testing
2020-04-07 18:55:45 -07:00
Casey Rodarmor
98335f435d
Initial commit
type: added
2020-04-07 18:55:30 -07:00