ppl 3.0.0 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (334) hide show
  1. checksums.yaml +5 -5
  2. data/.editorconfig +16 -0
  3. data/.eleventy.js +86 -0
  4. data/.eleventyignore +1 -0
  5. data/.github/workflows/build.yml +61 -0
  6. data/.gitignore +3 -1
  7. data/Rakefile +1 -18
  8. data/{CODE_OF_CONDUCT.md → code_of_conduct.md} +1 -1
  9. data/features/step_definitions/ppl_steps.rb +27 -27
  10. data/gh-pages/Gemfile +2 -0
  11. data/gh-pages/_config.yml +5 -0
  12. data/gh-pages/_includes/changelog.html +23 -0
  13. data/gh-pages/_includes/development-sidebar.html +25 -0
  14. data/gh-pages/_includes/footer.html +22 -0
  15. data/gh-pages/_includes/header.html +43 -0
  16. data/gh-pages/_includes/news.html +36 -0
  17. data/gh-pages/_includes/tip.html +54 -0
  18. data/gh-pages/_layouts/changelog.html +1 -0
  19. data/gh-pages/_layouts/command.html +104 -0
  20. data/gh-pages/_layouts/configuration.html +71 -0
  21. data/gh-pages/_layouts/development.html +20 -0
  22. data/gh-pages/_layouts/frontpage.html +6 -0
  23. data/gh-pages/_layouts/integration.html +44 -0
  24. data/gh-pages/_layouts/news.html +2 -0
  25. data/gh-pages/_layouts/page.html +6 -0
  26. data/gh-pages/_layouts/tip.html +2 -0
  27. data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
  28. data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
  29. data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
  30. data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
  31. data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
  32. data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
  33. data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
  34. data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
  35. data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
  36. data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
  37. data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
  38. data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
  39. data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
  40. data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
  41. data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
  42. data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
  43. data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
  44. data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
  45. data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
  46. data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
  47. data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
  48. data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
  49. data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
  50. data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
  51. data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
  52. data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
  53. data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
  54. data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
  55. data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
  56. data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
  57. data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
  58. data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
  59. data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
  60. data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
  61. data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
  62. data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
  63. data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
  64. data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
  65. data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
  66. data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
  67. data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
  68. data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
  69. data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
  70. data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
  71. data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
  72. data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
  73. data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
  74. data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
  75. data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
  76. data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
  77. data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
  78. data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
  79. data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
  80. data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
  81. data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
  82. data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
  83. data/gh-pages/_stylesheets/ppl/color.less +119 -0
  84. data/gh-pages/_stylesheets/ppl/layout.less +54 -0
  85. data/gh-pages/_stylesheets/ppl/style.less +185 -0
  86. data/gh-pages/_stylesheets/ppl/typography.less +59 -0
  87. data/gh-pages/development/changelog/index.md +18 -0
  88. data/gh-pages/development/changelog/split.rb +51 -0
  89. data/gh-pages/development/index.html +32 -0
  90. data/gh-pages/development/roadmap/index.md +15 -0
  91. data/gh-pages/documentation/about/index.html +63 -0
  92. data/gh-pages/documentation/commands/add/index.md +43 -0
  93. data/gh-pages/documentation/commands/age/add/index.md +40 -0
  94. data/gh-pages/documentation/commands/age/index.md +38 -0
  95. data/gh-pages/documentation/commands/bday/index.md +44 -0
  96. data/gh-pages/documentation/commands/completion/index.md +38 -0
  97. data/gh-pages/documentation/commands/email/index.md +64 -0
  98. data/gh-pages/documentation/commands/grep/index.md +32 -0
  99. data/gh-pages/documentation/commands/init/index.md +28 -0
  100. data/gh-pages/documentation/commands/ls/index.md +55 -0
  101. data/gh-pages/documentation/commands/mutt/index.md +36 -0
  102. data/gh-pages/documentation/commands/mv/index.md +26 -0
  103. data/gh-pages/documentation/commands/name/index.md +45 -0
  104. data/gh-pages/documentation/commands/nick/index.md +44 -0
  105. data/gh-pages/documentation/commands/org/index.md +45 -0
  106. data/gh-pages/documentation/commands/phone/index.md +56 -0
  107. data/gh-pages/documentation/commands/post/index.md +61 -0
  108. data/gh-pages/documentation/commands/pull/index.md +39 -0
  109. data/gh-pages/documentation/commands/push/index.md +36 -0
  110. data/gh-pages/documentation/commands/remote/index.md +40 -0
  111. data/gh-pages/documentation/commands/rm/index.md +23 -0
  112. data/gh-pages/documentation/commands/scrape/index.md +38 -0
  113. data/gh-pages/documentation/commands/shell/index.md +39 -0
  114. data/gh-pages/documentation/commands/show/index.md +33 -0
  115. data/gh-pages/documentation/commands/url/index.md +44 -0
  116. data/gh-pages/documentation/commands/version/index.md +27 -0
  117. data/gh-pages/documentation/configuration/address_book/index.md +22 -0
  118. data/gh-pages/documentation/configuration/alias/index.md +45 -0
  119. data/gh-pages/documentation/configuration/color/index.md +47 -0
  120. data/gh-pages/documentation/configuration/color_age/index.md +20 -0
  121. data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
  122. data/gh-pages/documentation/configuration/color_email/index.md +21 -0
  123. data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
  124. data/gh-pages/documentation/configuration/color_name/index.md +20 -0
  125. data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
  126. data/gh-pages/documentation/configuration/color_org/index.md +20 -0
  127. data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
  128. data/gh-pages/documentation/configuration/color_post/index.md +20 -0
  129. data/gh-pages/documentation/configuration/color_url/index.md +20 -0
  130. data/gh-pages/documentation/configuration/index.html +8 -0
  131. data/gh-pages/documentation/index.html +183 -0
  132. data/gh-pages/documentation/integration/bash/index.md +23 -0
  133. data/gh-pages/documentation/integration/google/index.md +26 -0
  134. data/gh-pages/documentation/integration/index.html +8 -0
  135. data/gh-pages/documentation/integration/mutt/index.md +35 -0
  136. data/gh-pages/documentation/integration/zsh/index.md +19 -0
  137. data/gh-pages/documentation/quick-start/index.html +88 -0
  138. data/gh-pages/documentation/tips/index.html +9 -0
  139. data/gh-pages/index.html +108 -0
  140. data/gh-pages/news/index.html +9 -0
  141. data/gh-pages/robots.txt +3 -0
  142. data/gh-pages/stylesheets/flatstrap.css +10 -0
  143. data/gh-pages/stylesheets/ppl.scss +235 -0
  144. data/gh-pages/wiki.png +0 -0
  145. data/lib/ppl.rb +4 -1
  146. data/lib/ppl/adapter/color.rb +0 -1
  147. data/lib/ppl/adapter/color/colored.rb +0 -1
  148. data/lib/ppl/adapter/email_scraper.rb +0 -1
  149. data/lib/ppl/adapter/email_scraper/mail.rb +4 -5
  150. data/lib/ppl/adapter/storage.rb +0 -1
  151. data/lib/ppl/adapter/storage/disk.rb +0 -1
  152. data/lib/ppl/adapter/storage/factory.rb +0 -1
  153. data/lib/ppl/adapter/vcard.rb +0 -1
  154. data/lib/ppl/adapter/vcard/vpim.rb +5 -1
  155. data/lib/ppl/application/bootstrap.rb +0 -1
  156. data/lib/ppl/application/command.rb +0 -1
  157. data/lib/ppl/application/command_suite.rb +0 -1
  158. data/lib/ppl/application/configuration.rb +0 -1
  159. data/lib/ppl/application/input.rb +0 -1
  160. data/lib/ppl/application/output.rb +0 -1
  161. data/lib/ppl/application/router.rb +0 -1
  162. data/lib/ppl/application/shell.rb +0 -1
  163. data/lib/ppl/command/add.rb +0 -1
  164. data/lib/ppl/command/age.rb +0 -1
  165. data/lib/ppl/command/attribute.rb +0 -1
  166. data/lib/ppl/command/bday.rb +0 -1
  167. data/lib/ppl/command/completion.rb +0 -1
  168. data/lib/ppl/command/email.rb +0 -1
  169. data/lib/ppl/command/external.rb +0 -1
  170. data/lib/ppl/command/help.rb +0 -1
  171. data/lib/ppl/command/init.rb +0 -1
  172. data/lib/ppl/command/ls.rb +0 -1
  173. data/lib/ppl/command/mutt.rb +0 -1
  174. data/lib/ppl/command/mv.rb +0 -1
  175. data/lib/ppl/command/name.rb +0 -1
  176. data/lib/ppl/command/nick.rb +0 -1
  177. data/lib/ppl/command/org.rb +0 -1
  178. data/lib/ppl/command/phone.rb +0 -1
  179. data/lib/ppl/command/post.rb +0 -1
  180. data/lib/ppl/command/rm.rb +0 -1
  181. data/lib/ppl/command/scrape.rb +0 -1
  182. data/lib/ppl/command/shell.rb +0 -1
  183. data/lib/ppl/command/show.rb +0 -1
  184. data/lib/ppl/command/url.rb +0 -1
  185. data/lib/ppl/command/version.rb +0 -1
  186. data/lib/ppl/entity/address_book.rb +0 -1
  187. data/lib/ppl/entity/contact.rb +0 -1
  188. data/lib/ppl/entity/email_address.rb +0 -1
  189. data/lib/ppl/entity/name.rb +0 -1
  190. data/lib/ppl/entity/phone_number.rb +0 -1
  191. data/lib/ppl/entity/postal_address.rb +0 -1
  192. data/lib/ppl/error/completion_not_found.rb +0 -1
  193. data/lib/ppl/error/contact_not_found.rb +0 -1
  194. data/lib/ppl/error/incorrect_usage.rb +0 -1
  195. data/lib/ppl/error/invalid_vcard.rb +1 -0
  196. data/lib/ppl/error/postal_address_not_found.rb +0 -1
  197. data/lib/ppl/format/address_book.rb +0 -1
  198. data/lib/ppl/format/address_book/ages.rb +0 -1
  199. data/lib/ppl/format/address_book/birthdays.rb +0 -1
  200. data/lib/ppl/format/address_book/email_addresses.rb +0 -1
  201. data/lib/ppl/format/address_book/mutt_query.rb +0 -1
  202. data/lib/ppl/format/address_book/names.rb +0 -1
  203. data/lib/ppl/format/address_book/nicknames.rb +0 -1
  204. data/lib/ppl/format/address_book/one_line.rb +0 -1
  205. data/lib/ppl/format/address_book/organizations.rb +0 -1
  206. data/lib/ppl/format/address_book/phone_numbers.rb +0 -1
  207. data/lib/ppl/format/address_book/postal_addresses.rb +0 -1
  208. data/lib/ppl/format/address_book/urls.rb +0 -1
  209. data/lib/ppl/format/contact.rb +0 -1
  210. data/lib/ppl/format/contact/age.rb +0 -1
  211. data/lib/ppl/format/contact/birthday.rb +0 -1
  212. data/lib/ppl/format/contact/email_addresses.rb +0 -1
  213. data/lib/ppl/format/contact/full.rb +0 -1
  214. data/lib/ppl/format/contact/nicknames.rb +0 -1
  215. data/lib/ppl/format/contact/organization.rb +0 -1
  216. data/lib/ppl/format/contact/phone_number.rb +0 -1
  217. data/lib/ppl/format/contact/postal_address.rb +0 -1
  218. data/lib/ppl/format/contact/postal_addresses.rb +0 -1
  219. data/lib/ppl/format/contact/urls.rb +0 -1
  220. data/lib/ppl/format/custom.rb +0 -1
  221. data/lib/ppl/format/custom/contact.rb +0 -1
  222. data/lib/ppl/format/custom/email_address.rb +0 -1
  223. data/lib/ppl/format/custom/phone_number.rb +0 -1
  224. data/lib/ppl/format/name.rb +0 -1
  225. data/lib/ppl/format/name/full_only.rb +0 -1
  226. data/lib/ppl/format/postal_address.rb +0 -1
  227. data/lib/ppl/format/postal_address/multi_line.rb +0 -1
  228. data/lib/ppl/format/postal_address/one_line.rb +0 -1
  229. data/lib/ppl/format/table.rb +0 -1
  230. data/lib/ppl/service/email_address.rb +0 -1
  231. data/lib/ppl/service/name.rb +0 -1
  232. data/lib/ppl/service/phone_number.rb +0 -1
  233. data/lib/ppl/service/postal_address.rb +0 -1
  234. data/{LICENSE → license} +0 -0
  235. data/makefile +18 -0
  236. data/package.json +23 -0
  237. data/ppl.gemspec +15 -13
  238. data/{README.md → readme.md} +12 -9
  239. data/site/_data/url.js +4 -0
  240. data/site/casts/hero.cast +189 -0
  241. data/site/development.njk +6 -0
  242. data/site/documentation.njk +6 -0
  243. data/site/index.njk +75 -0
  244. data/site/news.njk +6 -0
  245. data/site/style.scss +140 -0
  246. data/spec/ppl/adapter/color/colored_spec.rb +3 -4
  247. data/spec/ppl/adapter/color_spec.rb +0 -1
  248. data/spec/ppl/adapter/email_scraper/mail_spec.rb +13 -13
  249. data/spec/ppl/adapter/email_scraper_spec.rb +0 -1
  250. data/spec/ppl/adapter/output_spec.rb +7 -8
  251. data/spec/ppl/adapter/storage/disk_spec.rb +18 -19
  252. data/spec/ppl/adapter/storage/factory_spec.rb +3 -4
  253. data/spec/ppl/adapter/storage/git_spec.rb +31 -32
  254. data/spec/ppl/adapter/storage_spec.rb +3 -4
  255. data/spec/ppl/adapter/vcard/greencard_spec.rb +45 -45
  256. data/spec/ppl/adapter/vcard_spec.rb +0 -1
  257. data/spec/ppl/application/bootstrap_spec.rb +128 -129
  258. data/spec/ppl/application/command_spec.rb +8 -9
  259. data/spec/ppl/application/command_suite_spec.rb +7 -8
  260. data/spec/ppl/application/configuration_spec.rb +16 -17
  261. data/spec/ppl/application/input_spec.rb +2 -3
  262. data/spec/ppl/application/router_spec.rb +8 -9
  263. data/spec/ppl/application/shell_spec.rb +39 -40
  264. data/spec/ppl/command/add_spec.rb +6 -7
  265. data/spec/ppl/command/age_spec.rb +7 -8
  266. data/spec/ppl/command/attribute_spec.rb +22 -23
  267. data/spec/ppl/command/bday_spec.rb +11 -12
  268. data/spec/ppl/command/completion_spec.rb +7 -8
  269. data/spec/ppl/command/email_spec.rb +19 -20
  270. data/spec/ppl/command/external_spec.rb +7 -8
  271. data/spec/ppl/command/help_spec.rb +15 -16
  272. data/spec/ppl/command/init_spec.rb +5 -6
  273. data/spec/ppl/command/ls_spec.rb +12 -13
  274. data/spec/ppl/command/mutt_spec.rb +33 -34
  275. data/spec/ppl/command/mv_spec.rb +11 -12
  276. data/spec/ppl/command/name_spec.rb +17 -18
  277. data/spec/ppl/command/nick_spec.rb +1 -2
  278. data/spec/ppl/command/org_spec.rb +1 -2
  279. data/spec/ppl/command/phone_spec.rb +15 -16
  280. data/spec/ppl/command/post_spec.rb +29 -30
  281. data/spec/ppl/command/rm_spec.rb +3 -4
  282. data/spec/ppl/command/scrape_spec.rb +24 -25
  283. data/spec/ppl/command/shell_spec.rb +41 -42
  284. data/spec/ppl/command/show_spec.rb +4 -5
  285. data/spec/ppl/command/url_spec.rb +1 -2
  286. data/spec/ppl/command/version_spec.rb +4 -5
  287. data/spec/ppl/entity/address_book_spec.rb +1 -2
  288. data/spec/ppl/entity/contact_spec.rb +16 -17
  289. data/spec/ppl/entity/email_address_spec.rb +3 -4
  290. data/spec/ppl/entity/name_spec.rb +1 -2
  291. data/spec/ppl/entity/phone_number_spec.rb +5 -6
  292. data/spec/ppl/entity/postal_address_spec.rb +2 -3
  293. data/spec/ppl/format/address_book/ages_spec.rb +3 -4
  294. data/spec/ppl/format/address_book/birthdays_spec.rb +3 -4
  295. data/spec/ppl/format/address_book/email_addresses_spec.rb +3 -4
  296. data/spec/ppl/format/address_book/mutt_query_spec.rb +3 -4
  297. data/spec/ppl/format/address_book/names_spec.rb +3 -4
  298. data/spec/ppl/format/address_book/nicknames_spec.rb +4 -5
  299. data/spec/ppl/format/address_book/one_line_spec.rb +5 -6
  300. data/spec/ppl/format/address_book/organizations_spec.rb +3 -4
  301. data/spec/ppl/format/address_book/phone_numbers_spec.rb +3 -4
  302. data/spec/ppl/format/address_book/postal_addresses_spec.rb +2 -3
  303. data/spec/ppl/format/address_book/urls_spec.rb +3 -4
  304. data/spec/ppl/format/address_book_spec.rb +0 -1
  305. data/spec/ppl/format/contact/age_spec.rb +8 -9
  306. data/spec/ppl/format/contact/birthday_spec.rb +4 -5
  307. data/spec/ppl/format/contact/email_addresses_spec.rb +3 -4
  308. data/spec/ppl/format/contact/full_spec.rb +11 -12
  309. data/spec/ppl/format/contact/nicknames_spec.rb +4 -5
  310. data/spec/ppl/format/contact/organization_spec.rb +4 -5
  311. data/spec/ppl/format/contact/phone_number_spec.rb +4 -5
  312. data/spec/ppl/format/contact/postal_address_spec.rb +1 -2
  313. data/spec/ppl/format/contact/postal_addresses_spec.rb +3 -4
  314. data/spec/ppl/format/contact/urls_spec.rb +4 -5
  315. data/spec/ppl/format/contact_spec.rb +0 -1
  316. data/spec/ppl/format/custom/contact_spec.rb +13 -14
  317. data/spec/ppl/format/custom/email_address_spec.rb +3 -4
  318. data/spec/ppl/format/custom/phone_number_spec.rb +4 -5
  319. data/spec/ppl/format/custom_spec.rb +6 -7
  320. data/spec/ppl/format/name/full_only_spec.rb +4 -5
  321. data/spec/ppl/format/name_spec.rb +0 -1
  322. data/spec/ppl/format/postal_address/multi_line_spec.rb +10 -11
  323. data/spec/ppl/format/postal_address/one_line_spec.rb +9 -10
  324. data/spec/ppl/format/postal_address_spec.rb +0 -1
  325. data/spec/ppl/format/table_spec.rb +11 -11
  326. data/spec/ppl/service/email_address_spec.rb +13 -14
  327. data/spec/ppl/service/name_spec.rb +9 -10
  328. data/spec/ppl/service/phone_number_spec.rb +11 -12
  329. data/spec/ppl/service/postal_address_spec.rb +20 -21
  330. data/spec/spec_helper.rb +4 -0
  331. data/yarn.lock +3605 -0
  332. metadata +183 -22
  333. data/.travis.yml +0 -11
  334. data/COPYING +0 -339
@@ -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
+
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: ppl email Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: email
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl email - List, show or change email addresses
11
+
12
+ ### Synopsis
13
+
14
+ ppl email
15
+ ppl email <contact>
16
+ ppl email <contact> <email-address>
17
+ -d, --delete delete email address
18
+ -p, --preferred mark as preferred
19
+ -P, --not-preferred mark as not preferred
20
+ --format <format> specify a custom output format
21
+
22
+ ### Description
23
+
24
+ With no arguments, the email addresses of each contact in the address book are
25
+ listed.
26
+
27
+ If a `<contact>` is specified, the email addresses of that contact are shown.
28
+
29
+ If both a `<contact>` and an `<email-address>` are given, then the address is
30
+ added to the email addresses of the contact.
31
+
32
+ It the `--delete` or `-d` flag is set, then the given `<email-address>` is
33
+ deleted from the specified `<contact>`.
34
+
35
+ The `--preferred` and `--not-preferred` flags are for marking a given email
36
+ address as "preferred" or not. Internally, this status is represented with
37
+ vCard's `TYPE=pref` parameter in the `EMAIL` field. Preferred email addresses
38
+ are shown with a `*` next to them in the output of `ppl email <contact>`.
39
+
40
+ ### Formatting Options
41
+
42
+ Using the `--format` option, it is possible to customize the output of `ppl
43
+ email` in several ways. This customizability is similar in usage to a typical
44
+ `printf` function or [`git log`](http://git-scm.com/docs/git-log)'s own
45
+ `--format` option. Here are the placeholders and their values.
46
+
47
+ %n Newline
48
+ %a Email address
49
+ %f Preferred status ("*" if preferred)
50
+
51
+ ### Examples
52
+
53
+ $ ppl email jdoe jdoe@example.org --preferred
54
+ $ ppl email adam adam@example.com
55
+ $ ppl email jdoe
56
+ * jdoe@example.org
57
+ $ ppl email
58
+ adam: adam@example.com
59
+ jdoe: jdoe@example.org
60
+
61
+ ### See Also
62
+
63
+ * [color output](/documentation/configuration/color_email)
64
+
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: ppl grep Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: grep
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl grep - Search the address book
11
+
12
+ ### Synopsis
13
+
14
+ ppl grep <options> <search>
15
+
16
+ ### Description
17
+
18
+ This command is an alias of `git grep`. The `<options>` and the `<search>`
19
+ string given are passed straight on through to `git grep`.
20
+
21
+ The format and color of the output of this command is subject to your system's
22
+ git configuration, not the contents of your `~/.pplconfig`.
23
+
24
+ ### Examples
25
+
26
+ $ ppl grep smith
27
+ john.vcf:EMAIL:john.smith@example.org
28
+
29
+ ### See Also
30
+
31
+ * [git grep](http://git-scm.com/docs/git-grep)
32
+
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: ppl init Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: init
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl init - Create an empty address book
11
+
12
+ ### Synopsis
13
+
14
+ ppl init [<directory>]
15
+
16
+ ### Description
17
+
18
+ This command creates an empty ppl repository. It creates the specified directory
19
+ if it doesn't already exist, and initializes a git repository there.
20
+
21
+ If no `<directory>` parameter is explicitly specified, then the operation is
22
+ applied to the current working directory.
23
+
24
+ ### Examples
25
+
26
+ ppl init ~/contacts
27
+
28
+
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: ppl ls Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: ls
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl ls - List all contacts
11
+
12
+ ### Synopsis
13
+
14
+ ppl ls [<options>]
15
+ --format <format> specify a custom output format
16
+ --pretty <preset> specify a preset output format
17
+
18
+ ### Description
19
+
20
+ List all the contacts in the address book.
21
+
22
+ ### Formatting Options
23
+
24
+ Using the `--format` option, `ppl ls` can be customized to produce output in a
25
+ user-specified format. This is similar functionality to `printf` or the
26
+ customizability of other software such as [git
27
+ log](http://git-scm.com/docs/git-log). Here are the placeholders.
28
+
29
+ %n Newline
30
+ %i Contact ID
31
+ %N Name
32
+ %a Age
33
+ %b Birthday
34
+ %k Nickname (first)
35
+ %e Email address (preferred/first)
36
+ %p Phone number (preferred/first)
37
+ %o Organization (first)
38
+
39
+ Commonly used output formats can be stored in `~/.pplconfig` and invoked by name
40
+ using the `--pretty` option. For example, the following configuration would
41
+ allow the format to be used by running `ppl ls --pretty age_info`.
42
+
43
+ [pretty]
44
+ age_info = "%i: %a (%b)"
45
+
46
+ ### Examples
47
+
48
+ $ ppl ls
49
+ jdoe: John Doe <jdoe@example.org>
50
+ kdoe: Kent Doe <kdoe@example.org>
51
+
52
+ ### See Also
53
+
54
+ * [color output](/documentation/configuration/color_ls)
55
+
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: ppl mutt Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: mutt
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl mutt - Integration with mutt's query_command
11
+
12
+ ### Synopsis
13
+
14
+ ppl mutt [<options>] <query>
15
+ -i, --ignore-case Turn off case sensitivity
16
+
17
+ ### Description
18
+
19
+ Searches the names and email addresses in the address book for the given
20
+ `<query>` string and returns a list of results formatted for compatibility with
21
+ [mutt's query_command
22
+ option](http://www.mutt.org/doc/manual/manual-4.html#ss4.5).
23
+
24
+ This is intended to enable mutt users to integrate ppl as the search backend for
25
+ recipient autocompletion.
26
+
27
+ If the `-i` flag is given, the search will be case-insensitive, ignoring case
28
+ differences between the query given and the contacts' names and email addresses.
29
+
30
+ ### Examples
31
+
32
+ Put the following in your `~/.muttrc`:
33
+
34
+ set query_command = "ppl mutt '%s'"
35
+
36
+
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: ppl mv Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: mv
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl mv - Move a contact to a different ID
11
+
12
+ ### Synopsis
13
+
14
+ ppl mv <source> <destination>
15
+
16
+ ### Description
17
+
18
+ This changes the ID of a contact. The `<source>` parameter must correspond to
19
+ the ID of an existing contact in the address book. The `<destination>` parameter
20
+ must not already be in use as the ID of an existing contact.
21
+
22
+ ### Examples
23
+
24
+ ppl mv john jdoe
25
+
26
+