ppl 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|