Commit Graph

55 Commits

Author SHA1 Message Date
ea3b22fccc public API 2022-10-11 16:15:03 +02:00
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
e7872f56f2
Move all output from bin/gen to target/gen
To make it clearer what is and isn't generated content, make gen place
all generated output in `target/gen`.

Also, try to make the readme clearer about the location of build
artifacts.

type: development
2020-05-01 00:29:40 -07:00
Casey Rodarmor
60a72cf057
Add color to bin/gen error messages
type: development
2020-04-29 22:58:07 -07:00
Casey Rodarmor
8dfdbe43df
Add bin/gen command to diff generated content
The following command will print a diff between HEAD and HEAD^:

    cargo run --package gen diff

type: development
2020-04-29 22:46:32 -07:00
Casey Rodarmor
342266853e
Improve bin/gen error messages
Create an error enum with actual error messages.

type: development
2020-04-29 00:36:25 -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
0a870ed2ee
Get current time early when creating torrents
Since getting the system time is fallible, do it early when creating a
torrent, so as to avoid potentially wasting time searching and hashing.

type: reform
fixes:
- https://github.com/casey/intermodal/issues/207
2020-04-18 13:24:44 -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
03a9935164
Skip fixup commits in changelog
This change Makes the changelog generator ignore fixup commits.

`git commit --fixup` can be used to mark that a commit should be
squashed before merging, which can be done automatically with
`git rebase --autosquash`. Fixup commits have a summary that starts with
`fixup!`

type: development
2020-04-07 23:41:06 -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
0d7c1c0c27
Print magnet link to stdout with --link
Magnet links can be printed to standard output with:

    imdl torrent create --input PATH --link

type: added
2020-04-07 19:01:28 -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
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