ppl 4.0.2 → 4.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.editorconfig +12 -0
- data/.eleventy.js +86 -0
- data/.eleventyignore +1 -0
- data/.github/workflows/build.yml +30 -2
- data/.gitignore +3 -1
- data/Rakefile +1 -1
- data/features/step_definitions/ppl_steps.rb +24 -24
- data/gh-pages/Gemfile +2 -0
- data/gh-pages/_config.yml +5 -0
- data/gh-pages/_includes/changelog.html +23 -0
- data/gh-pages/_includes/development-sidebar.html +25 -0
- data/gh-pages/_includes/footer.html +22 -0
- data/gh-pages/_includes/header.html +43 -0
- data/gh-pages/_includes/news.html +36 -0
- data/gh-pages/_includes/tip.html +54 -0
- data/gh-pages/_layouts/changelog.html +1 -0
- data/gh-pages/_layouts/command.html +104 -0
- data/gh-pages/_layouts/configuration.html +71 -0
- data/gh-pages/_layouts/development.html +20 -0
- data/gh-pages/_layouts/frontpage.html +6 -0
- data/gh-pages/_layouts/integration.html +44 -0
- data/gh-pages/_layouts/news.html +2 -0
- data/gh-pages/_layouts/page.html +6 -0
- data/gh-pages/_layouts/tip.html +2 -0
- data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
- data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
- data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
- data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
- data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
- data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
- data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
- data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
- data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
- data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
- data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
- data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
- data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
- data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
- data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
- data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
- data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
- data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
- data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
- data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
- data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
- data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
- data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
- data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
- data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
- data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
- data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
- data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
- data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
- data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
- data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
- data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
- data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
- data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
- data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
- data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
- data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
- data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
- data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
- data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
- data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
- data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
- data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
- data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
- data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
- data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
- data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
- data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
- data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
- data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
- data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
- data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
- data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
- data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
- data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
- data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
- data/gh-pages/_stylesheets/ppl/color.less +119 -0
- data/gh-pages/_stylesheets/ppl/layout.less +54 -0
- data/gh-pages/_stylesheets/ppl/style.less +185 -0
- data/gh-pages/_stylesheets/ppl/typography.less +59 -0
- data/gh-pages/development/changelog/index.md +18 -0
- data/gh-pages/development/changelog/split.rb +51 -0
- data/gh-pages/development/index.html +32 -0
- data/gh-pages/development/roadmap/index.md +15 -0
- data/gh-pages/documentation/about/index.html +63 -0
- data/gh-pages/documentation/commands/add/index.md +43 -0
- data/gh-pages/documentation/commands/age/add/index.md +40 -0
- data/gh-pages/documentation/commands/age/index.md +38 -0
- data/gh-pages/documentation/commands/bday/index.md +44 -0
- data/gh-pages/documentation/commands/completion/index.md +38 -0
- data/gh-pages/documentation/commands/email/index.md +64 -0
- data/gh-pages/documentation/commands/grep/index.md +32 -0
- data/gh-pages/documentation/commands/init/index.md +28 -0
- data/gh-pages/documentation/commands/ls/index.md +55 -0
- data/gh-pages/documentation/commands/mutt/index.md +36 -0
- data/gh-pages/documentation/commands/mv/index.md +26 -0
- data/gh-pages/documentation/commands/name/index.md +45 -0
- data/gh-pages/documentation/commands/nick/index.md +44 -0
- data/gh-pages/documentation/commands/org/index.md +45 -0
- data/gh-pages/documentation/commands/phone/index.md +56 -0
- data/gh-pages/documentation/commands/post/index.md +61 -0
- data/gh-pages/documentation/commands/pull/index.md +39 -0
- data/gh-pages/documentation/commands/push/index.md +36 -0
- data/gh-pages/documentation/commands/remote/index.md +40 -0
- data/gh-pages/documentation/commands/rm/index.md +23 -0
- data/gh-pages/documentation/commands/scrape/index.md +38 -0
- data/gh-pages/documentation/commands/shell/index.md +39 -0
- data/gh-pages/documentation/commands/show/index.md +33 -0
- data/gh-pages/documentation/commands/url/index.md +44 -0
- data/gh-pages/documentation/commands/version/index.md +27 -0
- data/gh-pages/documentation/configuration/address_book/index.md +22 -0
- data/gh-pages/documentation/configuration/alias/index.md +45 -0
- data/gh-pages/documentation/configuration/color/index.md +47 -0
- data/gh-pages/documentation/configuration/color_age/index.md +20 -0
- data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
- data/gh-pages/documentation/configuration/color_email/index.md +21 -0
- data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
- data/gh-pages/documentation/configuration/color_name/index.md +20 -0
- data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
- data/gh-pages/documentation/configuration/color_org/index.md +20 -0
- data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
- data/gh-pages/documentation/configuration/color_post/index.md +20 -0
- data/gh-pages/documentation/configuration/color_url/index.md +20 -0
- data/gh-pages/documentation/configuration/index.html +8 -0
- data/gh-pages/documentation/index.html +183 -0
- data/gh-pages/documentation/integration/bash/index.md +23 -0
- data/gh-pages/documentation/integration/google/index.md +26 -0
- data/gh-pages/documentation/integration/index.html +8 -0
- data/gh-pages/documentation/integration/mutt/index.md +35 -0
- data/gh-pages/documentation/integration/zsh/index.md +19 -0
- data/gh-pages/documentation/quick-start/index.html +88 -0
- data/gh-pages/documentation/tips/index.html +9 -0
- data/gh-pages/index.html +108 -0
- data/gh-pages/news/index.html +9 -0
- data/gh-pages/robots.txt +3 -0
- data/gh-pages/stylesheets/flatstrap.css +10 -0
- data/gh-pages/stylesheets/ppl.scss +235 -0
- data/gh-pages/wiki.png +0 -0
- data/lib/ppl.rb +4 -1
- data/makefile +18 -0
- data/package.json +23 -0
- data/ppl.gemspec +1 -1
- data/site/_data/url.js +4 -0
- data/site/casts/hero.cast +189 -0
- data/site/development.njk +6 -0
- data/site/documentation.njk +6 -0
- data/site/index.njk +75 -0
- data/site/news.njk +6 -0
- data/site/style.scss +140 -0
- data/yarn.lock +3605 -0
- metadata +149 -1
@@ -0,0 +1,59 @@
|
|
1
|
+
|
2
|
+
body {
|
3
|
+
font-family: "Arvo", sans-serif;
|
4
|
+
font-size: 16px;
|
5
|
+
line-height: 24px;
|
6
|
+
}
|
7
|
+
|
8
|
+
code {
|
9
|
+
font-family: "Inconsolata", monospace;
|
10
|
+
font-size: 16px;
|
11
|
+
}
|
12
|
+
|
13
|
+
h1, h2, h3, h4, h5, h6 {
|
14
|
+
font-size: 1em;
|
15
|
+
font-weight: normal;
|
16
|
+
}
|
17
|
+
|
18
|
+
h2 {
|
19
|
+
font-size: 22px;
|
20
|
+
font-weight: bold;
|
21
|
+
small {
|
22
|
+
font-size: 16px;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
h3 {
|
27
|
+
font-size: 18px;
|
28
|
+
font-weight: bold;
|
29
|
+
}
|
30
|
+
|
31
|
+
.front-page {
|
32
|
+
h1.big-welcome {
|
33
|
+
font-size: 32px;
|
34
|
+
}
|
35
|
+
.little-welcome {
|
36
|
+
font-size: 18px;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
.command-list {
|
41
|
+
h2 {
|
42
|
+
font-size: 18px;
|
43
|
+
font-weight: normal;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
.navbar .nav > .active > a,
|
48
|
+
.navbar .nav > .active > a:hover,
|
49
|
+
.navbar .nav > .active > a:focus {
|
50
|
+
text-shadow: none;
|
51
|
+
}
|
52
|
+
|
53
|
+
footer.global {
|
54
|
+
font-size: 12px;
|
55
|
+
a:link, a:visited {
|
56
|
+
text-decoration: underline;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
title: Changelog
|
3
|
+
layout: development
|
4
|
+
section: development
|
5
|
+
---
|
6
|
+
|
7
|
+
<dl class="version-history">
|
8
|
+
{% for post in site.categories.changelog %}
|
9
|
+
<dt>
|
10
|
+
<a href="{{site.url}}/development/changelog/{{post.title}}">
|
11
|
+
{{post.title}}
|
12
|
+
</a>
|
13
|
+
</dt>
|
14
|
+
<dd>
|
15
|
+
{{post.summary}}
|
16
|
+
</dd>
|
17
|
+
{% endfor %}
|
18
|
+
</dl>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "rugged"
|
4
|
+
|
5
|
+
repo = Rugged::Repository.new("/home/hnrysmth/src/ppl")
|
6
|
+
index = File.read("development/changelog/index.md")
|
7
|
+
|
8
|
+
changes = index.split("### ")
|
9
|
+
|
10
|
+
def find_date(repo, version)
|
11
|
+
tag = repo.refs.find { |r| r.name == "refs/tags/#{version}" }
|
12
|
+
commit = repo.lookup(tag.target).target
|
13
|
+
commit.time
|
14
|
+
end
|
15
|
+
|
16
|
+
def generate_post(front_matter, body)
|
17
|
+
post = ["---"]
|
18
|
+
front_matter.each do |name, value|
|
19
|
+
post << "#{name}: #{value}"
|
20
|
+
end
|
21
|
+
post << "---"
|
22
|
+
post << ""
|
23
|
+
post << body
|
24
|
+
|
25
|
+
post.join "\n"
|
26
|
+
end
|
27
|
+
|
28
|
+
changes.each do |change|
|
29
|
+
|
30
|
+
version = change.scan(/^([0-9.]+)/)[0]
|
31
|
+
next if version.nil?
|
32
|
+
|
33
|
+
version = version[0]
|
34
|
+
date = find_date(repo, version).strftime("%Y-%m-%d")
|
35
|
+
body = change.split("\n")[2..-1].join("\n")
|
36
|
+
|
37
|
+
post = generate_post({
|
38
|
+
:title => version,
|
39
|
+
:date => date,
|
40
|
+
:layout => "changelog",
|
41
|
+
:section => "development",
|
42
|
+
:categories => "[changelog]",
|
43
|
+
:permalink => "/development/changelog/#{version}",
|
44
|
+
}, body)
|
45
|
+
|
46
|
+
filename = "_posts/#{date}-#{version}.md"
|
47
|
+
|
48
|
+
File.open(filename, "w") { |f| f.write(post) }
|
49
|
+
|
50
|
+
end
|
51
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
title: Development
|
3
|
+
layout: development
|
4
|
+
section: development
|
5
|
+
---
|
6
|
+
|
7
|
+
<p>
|
8
|
+
You'd like to contribute to the development of ppl? Great!
|
9
|
+
Here's a quick introduction.
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<h3>Report A Bug</h3>
|
13
|
+
<p>
|
14
|
+
This project uses Github Issues to track bug reports. The tracker is at
|
15
|
+
<a href="https://github.com/hnrysmth/ppl/issues">github.com/hnrysmth/ppl/issues</a>.
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<h3>Get The Code</h3>
|
19
|
+
<p>
|
20
|
+
The main source repository for ppl is hosted on GitHub at <a
|
21
|
+
href="https://github.com/hnrysmth/ppl">github.com/hnrysmth/ppl</a>.
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<h3>Do Your Best</h3>
|
25
|
+
<p>
|
26
|
+
For low-level code style issues relating to issues such as syntax and
|
27
|
+
indentation, <a href="https://github.com/styleguide/ruby">GitHub's Ruby
|
28
|
+
Styleguide</a> is the standard to follow*. This project doesn't necessarily
|
29
|
+
follow the guide perfectly, but pull requests that improve adherence to the
|
30
|
+
guide are welcomed whereas pull requests that stray even further are
|
31
|
+
discouraged.
|
32
|
+
</p>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
title: Roadmap
|
3
|
+
layout: development
|
4
|
+
section: development
|
5
|
+
---
|
6
|
+
|
7
|
+
As of January 2018 this project is in quite a stable state, with no major
|
8
|
+
increases in functionality planned. That being said, I'm not actually against
|
9
|
+
adding more functionality to this thing if somebody out there feels like taking
|
10
|
+
on the implementation work. I'm very very open to adding lots more stuff, just
|
11
|
+
not interested in creating it myself.
|
12
|
+
|
13
|
+
Please don't hesitate to get in touch if you have ideas for ppl that you want to
|
14
|
+
build and contribute!
|
15
|
+
|
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
title: About ppl
|
3
|
+
layout: page
|
4
|
+
section: documentation
|
5
|
+
---
|
6
|
+
|
7
|
+
<h2>About ppl</h2>
|
8
|
+
|
9
|
+
<div class="row">
|
10
|
+
<div class="span8">
|
11
|
+
<h3>Why?</h3>
|
12
|
+
<p>
|
13
|
+
ppl was created to address the need for a decentralized address book
|
14
|
+
storage system. There are a lot of different contact details storage
|
15
|
+
solutions out there and they all have their own strengths. What was
|
16
|
+
lacking was one that I felt I could count on to entrust with the "master
|
17
|
+
copy" of all the disparate contact information I possess.
|
18
|
+
</p>
|
19
|
+
<p>
|
20
|
+
It's also intended to address the apparent lack of a proper CLI address
|
21
|
+
book. There are people who enjoy the conversational nature of CLI
|
22
|
+
interaction. You ask "Whose birthdays are coming up soon?", the computer
|
23
|
+
answers immediately, and your interaction with the software is over with
|
24
|
+
no further requirements that you close a window or slide a widget.
|
25
|
+
</p>
|
26
|
+
|
27
|
+
<h3>Why the CLI?</h3>
|
28
|
+
<p>
|
29
|
+
The command-line is a good fit for address book software because data
|
30
|
+
about contacts is usually 100% plain text. It also works well because a
|
31
|
+
given user interaction with an address book typically consists of one
|
32
|
+
short operation: reading or writing a single piece of data. And since we
|
33
|
+
normally want to keep our address book data for our entire lives, the
|
34
|
+
command-line's immunity to the shifting sands of GUI toolkits and
|
35
|
+
discontinued SaaS products is a big plus.
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<h3>Why Git?</h3>
|
39
|
+
<p>
|
40
|
+
ppl uses git as its storage backend. Git's decentralised approach really
|
41
|
+
suits this usage as it allows continued read/write access to the address
|
42
|
+
book in the face of network downtime and cloud outages. And because git
|
43
|
+
never destroys data, no botched sync attempt can permanently wipe an
|
44
|
+
entire address book by accident.
|
45
|
+
</p>
|
46
|
+
|
47
|
+
<h3>Who?</h3>
|
48
|
+
<p>
|
49
|
+
This software was conceived and created by me, Henry Smith.
|
50
|
+
I have a bunch of <a href="http://github.com/hnrysmth/">other stuff on
|
51
|
+
GitHub too</a>!
|
52
|
+
</p>
|
53
|
+
|
54
|
+
<h3>When?</h3>
|
55
|
+
<p>
|
56
|
+
According to the project's git logs, work on ppl first began on November
|
57
|
+
10th 2012. Apparently I had nothing more exciting to be doing at 11pm on a
|
58
|
+
Saturday night.
|
59
|
+
</p>
|
60
|
+
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
title: ppl add Manual Page
|
3
|
+
layout: command
|
4
|
+
section: documentation
|
5
|
+
command: add
|
6
|
+
---
|
7
|
+
|
8
|
+
### Name
|
9
|
+
|
10
|
+
ppl add - Add a new contact
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
ppl add <contact> <name>
|
15
|
+
|
16
|
+
### Description
|
17
|
+
|
18
|
+
This command adds a new contact to the address book. The first parameter,
|
19
|
+
`<contact>`, is an alphanumeric string used to uniquely identify the contact
|
20
|
+
within the address book. The second parameter, `<name>`, is the contact's actual
|
21
|
+
name.
|
22
|
+
|
23
|
+
The `<contact>` parameter must not already be in use as the identifier of
|
24
|
+
another contact in the address book. Ideally you'll want to pick something short
|
25
|
+
and easy to type, so if you're adding a contact named "John Doe", then "john" or
|
26
|
+
"jdoe" might be good choices if they aren't already in use.
|
27
|
+
|
28
|
+
The `<name>` parameter should be the full name of the contact, and is identical
|
29
|
+
to its namesake expected by the [ppl name](../name) command. Usually, this
|
30
|
+
means it needs to be enclosed in quotation marks to indicate that all the words
|
31
|
+
in the name are part of the same parameter.
|
32
|
+
|
33
|
+
The first word in the `<name>` will also be stored as the contact's given name,
|
34
|
+
with the remainder of the string being treated as their family name.
|
35
|
+
|
36
|
+
### Examples
|
37
|
+
|
38
|
+
ppl add jdoe "John Doe"
|
39
|
+
|
40
|
+
### See Also
|
41
|
+
|
42
|
+
[ppl name](../name)
|
43
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
title: ppl add Manual Page
|
3
|
+
layout: command
|
4
|
+
section: documentation
|
5
|
+
command: add
|
6
|
+
---
|
7
|
+
|
8
|
+
### Name
|
9
|
+
|
10
|
+
ppl add - Add a new contact
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
ppl add <contact> <name>
|
15
|
+
|
16
|
+
### Description
|
17
|
+
|
18
|
+
This command adds a new contact to the address book. The first parameter,
|
19
|
+
`<contact>`, is an alphanumeric string used to uniquely identify the contact
|
20
|
+
within the address book. The second parameter, `<name>`, is the contact's actual
|
21
|
+
name.
|
22
|
+
|
23
|
+
The `<contact>` parameter must not already be in use as the identifier of
|
24
|
+
another contact in the address book. Ideally you'll want to pick something short
|
25
|
+
and easy to type, so if you're adding a contact named "John Doe", then "john" or
|
26
|
+
"jdoe" might be good choices if they aren't already in use.
|
27
|
+
|
28
|
+
The `<name>` parameter should be the full name of the contact, and is identical
|
29
|
+
to its namesake expected by the [ppl name](../name) command. Usually, this
|
30
|
+
means it needs to be enclosed in quotation marks to indicate that all the words
|
31
|
+
in the name are part of the same parameter.
|
32
|
+
|
33
|
+
### Examples
|
34
|
+
|
35
|
+
ppl add jdoe "John Doe"
|
36
|
+
|
37
|
+
### See Also
|
38
|
+
|
39
|
+
[ppl name](../name)
|
40
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
title: ppl age Manual Page
|
3
|
+
layout: command
|
4
|
+
section: documentation
|
5
|
+
command: age
|
6
|
+
---
|
7
|
+
|
8
|
+
### Name
|
9
|
+
|
10
|
+
ppl age - List or show contacts' ages
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
ppl age [<contact>]
|
15
|
+
|
16
|
+
### Description
|
17
|
+
|
18
|
+
This command calculates contacts' current ages in years based on their date of
|
19
|
+
birth. The purpose of this command is to provide easy access to an often-needed
|
20
|
+
piece of information which is indirectly available from the data in the address
|
21
|
+
book.
|
22
|
+
|
23
|
+
Invoked without any arguments, all contacts are listed with their respective
|
24
|
+
ages. If a `<contact>` is specified, only the age of that contact will be shown.
|
25
|
+
|
26
|
+
### Examples
|
27
|
+
|
28
|
+
$ ppl bday jdoe 1980-01-01
|
29
|
+
$ ppl age jdoe
|
30
|
+
33
|
31
|
+
$ ppl age
|
32
|
+
fred: 25
|
33
|
+
jdoe: 33
|
34
|
+
|
35
|
+
### See Also
|
36
|
+
|
37
|
+
* [ppl bday](../bday)
|
38
|
+
* [color output](/documentation/configuration/color_age)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
title: ppl bday Manual Page
|
3
|
+
layout: command
|
4
|
+
section: documentation
|
5
|
+
command: bday
|
6
|
+
---
|
7
|
+
|
8
|
+
### Name
|
9
|
+
|
10
|
+
ppl bday - List, show or change birthdays
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
ppl bday
|
15
|
+
ppl bday <contact>
|
16
|
+
ppl bday <contact> <date>
|
17
|
+
|
18
|
+
### Description
|
19
|
+
|
20
|
+
With no arguments, the dates of birth of each contact in the address book are
|
21
|
+
listed.
|
22
|
+
|
23
|
+
If a `<contact>` is specified, the date of birth of that contact is shown.
|
24
|
+
|
25
|
+
If both a `<contact>` and a `<date>` are given, then the date is stored as the
|
26
|
+
date of birth of that contact. The `<date>` parameter must be a valid date
|
27
|
+
string parseable by Ruby's
|
28
|
+
[Date.parse](http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html\#method-c-parse)
|
29
|
+
function.
|
30
|
+
|
31
|
+
### Examples
|
32
|
+
|
33
|
+
$ ppl bday jdoe 1970-01-01
|
34
|
+
$ ppl bday adam 1975-06-01
|
35
|
+
$ ppl bday jdoe
|
36
|
+
1970-01-01
|
37
|
+
$ ppl bday
|
38
|
+
adam: 1975-06-01
|
39
|
+
jdoe: 1970-01-01
|
40
|
+
|
41
|
+
### See Also
|
42
|
+
|
43
|
+
* [Date.parse](http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html\#method-c-parse)
|
44
|
+
* [color output](/documentation/configuration/color_bday)
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
title: ppl completion Manual Page
|
3
|
+
layout: command
|
4
|
+
section: documentation
|
5
|
+
command: completion
|
6
|
+
---
|
7
|
+
|
8
|
+
### Name
|
9
|
+
|
10
|
+
ppl completion - Output a completion function for shell integration
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
ppl completion <shell>
|
15
|
+
|
16
|
+
### Description
|
17
|
+
|
18
|
+
Output a shell autocomplete function to enable automatic completion of commands
|
19
|
+
|
20
|
+
The following shells are supported:
|
21
|
+
|
22
|
+
* `bash`
|
23
|
+
* `zsh`
|
24
|
+
|
25
|
+
### Examples
|
26
|
+
|
27
|
+
$ ppl completion bash
|
28
|
+
_ppl()
|
29
|
+
{
|
30
|
+
....
|
31
|
+
}
|
32
|
+
complete -F _ppl ppl
|
33
|
+
|
34
|
+
### See Also
|
35
|
+
|
36
|
+
* [Bash Integration Guide](/documentation/integration/bash)
|
37
|
+
* [ZSH Integration Guide](/documentation/integration/zsh)
|
38
|
+
|