pin 0.1.2

Pinboard (and Instapaper) client
Documentation

Table of Contents

  1. Introduction
  2. Installation
  3. Discussion

Introduction

pin is a minimal Rust command-line client for Pinboard (and Instapaper). It is by no means complete; it supports a few operations which I have found useful. I might add more operations in the future. I have chosen the version number (0.1) in the hopes of conveying that this is a preliminary release.

Here are a few examples of what you can do with pin:

You can send a link to Pinboard with tags a, b & c:

$> pin send -t a -t b -t c "http://foo.com/bar | splat"

You can setup canned tag clouds you use repeatedly & refer to them by name:

$> cat ~/.pin
token = "you:XXX"

[targets]

[targets.frobnitz]
tags = ["@review", "frobinate"]
read_later = true
...
# This link will get tags @review & frobinate, and have the "read later" flag set:
$> pin send -r frobnitz "http://foo.com/bar | splat"

You can send the link to Instapaper at the same time:

$> pin send -r frobnitz --with-instapaper "http://foo.com/bar | splat"

I began using it for tag maintenance:

$> pin get-tags 
| Tag                            | Use Count |
+--------------------------------+-----------+
| flapdoodl                      |         1 |
| flapdoodle                     |     10000 |
...
# Hmmm... likely a mis-spelling
$> pin rename-tag flapdoodl flapdoodle

Type pin --help for a description of all flags & sub-commands.

Installation

This crate is available on crates.io, but you can also download an Autotools tarball:

cd /tmp
curl -O https://www.unwoundstack.com/dist/pin-0.1.2.tar.xz
tar xf pin-0.1.2.tar.xz
cd pin-0.1.2
./configure
make
make check
sudo make install

Discussion

pin is at this time so simple that I've covered most of what it can do in the examples above. I should note that it is also one of my first Rust projects. Comments, code reviews & complaints welcome at sp1ff@pobox.com.