ppl 3.0.0 → 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.
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
+