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.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +12 -0
  3. data/.eleventy.js +86 -0
  4. data/.eleventyignore +1 -0
  5. data/.github/workflows/build.yml +30 -2
  6. data/.gitignore +3 -1
  7. data/Rakefile +1 -1
  8. data/features/step_definitions/ppl_steps.rb +24 -24
  9. data/gh-pages/Gemfile +2 -0
  10. data/gh-pages/_config.yml +5 -0
  11. data/gh-pages/_includes/changelog.html +23 -0
  12. data/gh-pages/_includes/development-sidebar.html +25 -0
  13. data/gh-pages/_includes/footer.html +22 -0
  14. data/gh-pages/_includes/header.html +43 -0
  15. data/gh-pages/_includes/news.html +36 -0
  16. data/gh-pages/_includes/tip.html +54 -0
  17. data/gh-pages/_layouts/changelog.html +1 -0
  18. data/gh-pages/_layouts/command.html +104 -0
  19. data/gh-pages/_layouts/configuration.html +71 -0
  20. data/gh-pages/_layouts/development.html +20 -0
  21. data/gh-pages/_layouts/frontpage.html +6 -0
  22. data/gh-pages/_layouts/integration.html +44 -0
  23. data/gh-pages/_layouts/news.html +2 -0
  24. data/gh-pages/_layouts/page.html +6 -0
  25. data/gh-pages/_layouts/tip.html +2 -0
  26. data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
  27. data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
  28. data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
  29. data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
  30. data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
  31. data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
  32. data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
  33. data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
  34. data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
  35. data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
  36. data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
  37. data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
  38. data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
  39. data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
  40. data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
  41. data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
  42. data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
  43. data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
  44. data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
  45. data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
  46. data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
  47. data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
  48. data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
  49. data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
  50. data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
  51. data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
  52. data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
  53. data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
  54. data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
  55. data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
  56. data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
  57. data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
  58. data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
  59. data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
  60. data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
  61. data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
  62. data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
  63. data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
  64. data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
  65. data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
  66. data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
  67. data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
  68. data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
  69. data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
  70. data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
  71. data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
  72. data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
  73. data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
  74. data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
  75. data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
  76. data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
  77. data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
  78. data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
  79. data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
  80. data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
  81. data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
  82. data/gh-pages/_stylesheets/ppl/color.less +119 -0
  83. data/gh-pages/_stylesheets/ppl/layout.less +54 -0
  84. data/gh-pages/_stylesheets/ppl/style.less +185 -0
  85. data/gh-pages/_stylesheets/ppl/typography.less +59 -0
  86. data/gh-pages/development/changelog/index.md +18 -0
  87. data/gh-pages/development/changelog/split.rb +51 -0
  88. data/gh-pages/development/index.html +32 -0
  89. data/gh-pages/development/roadmap/index.md +15 -0
  90. data/gh-pages/documentation/about/index.html +63 -0
  91. data/gh-pages/documentation/commands/add/index.md +43 -0
  92. data/gh-pages/documentation/commands/age/add/index.md +40 -0
  93. data/gh-pages/documentation/commands/age/index.md +38 -0
  94. data/gh-pages/documentation/commands/bday/index.md +44 -0
  95. data/gh-pages/documentation/commands/completion/index.md +38 -0
  96. data/gh-pages/documentation/commands/email/index.md +64 -0
  97. data/gh-pages/documentation/commands/grep/index.md +32 -0
  98. data/gh-pages/documentation/commands/init/index.md +28 -0
  99. data/gh-pages/documentation/commands/ls/index.md +55 -0
  100. data/gh-pages/documentation/commands/mutt/index.md +36 -0
  101. data/gh-pages/documentation/commands/mv/index.md +26 -0
  102. data/gh-pages/documentation/commands/name/index.md +45 -0
  103. data/gh-pages/documentation/commands/nick/index.md +44 -0
  104. data/gh-pages/documentation/commands/org/index.md +45 -0
  105. data/gh-pages/documentation/commands/phone/index.md +56 -0
  106. data/gh-pages/documentation/commands/post/index.md +61 -0
  107. data/gh-pages/documentation/commands/pull/index.md +39 -0
  108. data/gh-pages/documentation/commands/push/index.md +36 -0
  109. data/gh-pages/documentation/commands/remote/index.md +40 -0
  110. data/gh-pages/documentation/commands/rm/index.md +23 -0
  111. data/gh-pages/documentation/commands/scrape/index.md +38 -0
  112. data/gh-pages/documentation/commands/shell/index.md +39 -0
  113. data/gh-pages/documentation/commands/show/index.md +33 -0
  114. data/gh-pages/documentation/commands/url/index.md +44 -0
  115. data/gh-pages/documentation/commands/version/index.md +27 -0
  116. data/gh-pages/documentation/configuration/address_book/index.md +22 -0
  117. data/gh-pages/documentation/configuration/alias/index.md +45 -0
  118. data/gh-pages/documentation/configuration/color/index.md +47 -0
  119. data/gh-pages/documentation/configuration/color_age/index.md +20 -0
  120. data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
  121. data/gh-pages/documentation/configuration/color_email/index.md +21 -0
  122. data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
  123. data/gh-pages/documentation/configuration/color_name/index.md +20 -0
  124. data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
  125. data/gh-pages/documentation/configuration/color_org/index.md +20 -0
  126. data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
  127. data/gh-pages/documentation/configuration/color_post/index.md +20 -0
  128. data/gh-pages/documentation/configuration/color_url/index.md +20 -0
  129. data/gh-pages/documentation/configuration/index.html +8 -0
  130. data/gh-pages/documentation/index.html +183 -0
  131. data/gh-pages/documentation/integration/bash/index.md +23 -0
  132. data/gh-pages/documentation/integration/google/index.md +26 -0
  133. data/gh-pages/documentation/integration/index.html +8 -0
  134. data/gh-pages/documentation/integration/mutt/index.md +35 -0
  135. data/gh-pages/documentation/integration/zsh/index.md +19 -0
  136. data/gh-pages/documentation/quick-start/index.html +88 -0
  137. data/gh-pages/documentation/tips/index.html +9 -0
  138. data/gh-pages/index.html +108 -0
  139. data/gh-pages/news/index.html +9 -0
  140. data/gh-pages/robots.txt +3 -0
  141. data/gh-pages/stylesheets/flatstrap.css +10 -0
  142. data/gh-pages/stylesheets/ppl.scss +235 -0
  143. data/gh-pages/wiki.png +0 -0
  144. data/lib/ppl.rb +4 -1
  145. data/makefile +18 -0
  146. data/package.json +23 -0
  147. data/ppl.gemspec +1 -1
  148. data/site/_data/url.js +4 -0
  149. data/site/casts/hero.cast +189 -0
  150. data/site/development.njk +6 -0
  151. data/site/documentation.njk +6 -0
  152. data/site/index.njk +75 -0
  153. data/site/news.njk +6 -0
  154. data/site/style.scss +140 -0
  155. data/yarn.lock +3605 -0
  156. metadata +149 -1
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: ppl post Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: post
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl post - List, show or change postal addresses
11
+
12
+ ### Synopsis
13
+
14
+ ppl post
15
+ ppl post <contact>
16
+ ppl post <contact> <address>
17
+ -s, --street <street-address>
18
+ -z, --postal-code <postal-code>
19
+ -p, --po-box <po-box>
20
+ -l, --locality <locality>
21
+ -r, --region <region>
22
+ -c, --country <country>
23
+ ppl post <contact> <address> (-m | --move) <new-name>
24
+
25
+ ### Description
26
+
27
+ With no arguments, the postal addresses of each contact in the address book are
28
+ listed.
29
+
30
+ If a just a `<contact>` is specified, the postal addresses of that contact are
31
+ shown.
32
+
33
+ If both a `<contact>` and an `<address>` are specified, an address will be
34
+ created or updated using the options provided.
35
+
36
+ Use the `-m` or `--move` flag to move an address to a new ID.
37
+
38
+ ### Examples
39
+
40
+ $ ppl post
41
+ alice: home, work
42
+ jdoe: home
43
+ $ ppl post alice
44
+ * home 3701 Southwest 12th Street, Topeka, Kansas, USA
45
+ work 123 Business Road, Businesstown, USA
46
+ $ ppl post alice home
47
+ 3701 Southwest 12th Street
48
+ Topeka
49
+ Kansas
50
+ USA
51
+ $ ppl post alice home --country Canada
52
+ $ ppl post alice home
53
+ 3701 Southwest 12th Street
54
+ Topeka
55
+ Kansas
56
+ Canada
57
+
58
+ ### See Also
59
+
60
+ * [color output](/documentation/configuration/color_post)
61
+
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: ppl pull Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: pull
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl pull - Execute `git pull` in the address book directory
11
+
12
+ ### Synopsis
13
+
14
+ ppl pull <remote> <branch>
15
+
16
+ ### Description
17
+
18
+ This command is an alias of `git pull`. It is intended to make it more
19
+ convenient to use git to synchronise your address book. The rationale is that it
20
+ is tiresome to have to type `cd ~/contacts` and then `git pull origin master`.
21
+ Assuming you have configured ppl to [remember the location of your address
22
+ book](/documentation/configuration/address_book), then `ppl pull origin master`
23
+ is the equivalent of those two commands.
24
+
25
+ Note that this command literally executes the git command `push` in the address
26
+ book directory. If you don't have the git CLI tool installed, this command will
27
+ not work.
28
+
29
+ ### Examples
30
+
31
+ $ ppl pull origin master
32
+ Already up-to-date.
33
+
34
+ ### See Also
35
+
36
+ * [git pull](http://git-scm.com/docs/git-pull)
37
+ * [ppl push](/documentation/commands/push)
38
+ * [ppl remote](/documentation/commands/push)
39
+
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: ppl push Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: push
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl push - Execute `git push` in the address book directory
11
+
12
+ ### Synopsis
13
+
14
+ ppl push <remote> <branch>
15
+
16
+ ### Description
17
+
18
+ This command is an alias of `git push`. It is intended to make it more
19
+ convenient to use git to synchronise your address book. See the documentation
20
+ for [git pull](/documentation/commands/pull) for more details.
21
+
22
+ Note that this command literally executes the git command `push` in the address
23
+ book directory. If you don't have the git CLI tool installed, this command will
24
+ not work.
25
+
26
+ ### Examples
27
+
28
+ $ ppl push origin master
29
+ Everything up-to-date.
30
+
31
+ ### See Also
32
+
33
+ * [git push](http://git-scm.com/docs/git-push)
34
+ * [ppl pull](/documentation/commands/pull)
35
+ * [ppl remote](/documentation/commands/push)
36
+
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: ppl remote Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: remote
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl remote - Execute `git remote` in the address book directory
11
+
12
+ ### Synopsis
13
+
14
+ ppl remote [-v | --verbose]
15
+ ppl remote rename <old> <new>
16
+ ppl remote rm <name>
17
+
18
+ ### Description
19
+
20
+ This command is an alias of `git remote`. It is intended to make it more
21
+ convenient to use git to synchronise your address book. See the documentation
22
+ for [git pull](/documentation/commands/pull) for more details.
23
+
24
+ Note that this command literally executes the git command `remote` in the
25
+ address book directory. If you don't have the git CLI tool installed, this
26
+ command will not work.
27
+
28
+ ### Examples
29
+
30
+ $ ppl remote
31
+ origin
32
+ github
33
+ $ ppl remote rm github
34
+
35
+ ### See Also
36
+
37
+ * [git remote](http://git-scm.com/docs/git-remote)
38
+ * [ppl pull](/documentation/commands/pull)
39
+ * [ppl push](/documentation/commands/push)
40
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: ppl rm Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: rm
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl rm - Delete a contact
11
+
12
+ ### Synopsis
13
+
14
+ ppl rm <contact>
15
+
16
+ ### Description
17
+
18
+ Delete the specified `<contact>` from the address book.
19
+
20
+ ### Examples
21
+
22
+ ppl rm jdoe
23
+
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: ppl scrape Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: scrape
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl scrape - Scrape contact details from an email in `stdin`
11
+
12
+ ### Synopsis
13
+
14
+ ppl scrape [<options>]
15
+ -q, --quiet Add contacts to the address book without prompting
16
+ -s, --sender Scrape the sender's contact details
17
+
18
+ ### Description
19
+
20
+ Reads an email message from stdin and scrapes contact information from it into
21
+ the address book. By default nothing will be scraped; the command must be told
22
+ explicitly which information to scrape via its arguments.
23
+
24
+ If the `--sender` option is used, then the details of the person in the email's
25
+ `From:` header will be scraped into the address book.
26
+
27
+ If the `--quiet` option is used, the command will not prompt the user to confirm
28
+ whether they approve of each contact before saving them to the address book.
29
+
30
+ This command is analogous to [abook](http://abook.sourceforge.net/)'s
31
+ `--add-email` functionality. Both the confirmation prompt and the `--quiet` flag
32
+ are provided with the intention of achieving feature parity with this part of
33
+ abook.
34
+
35
+ ### Examples
36
+
37
+ ppl scrape --sender --quiet < ~/Mail/cur/1234.example.org
38
+
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: ppl shell Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: shell
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl shell - Interactive mode
11
+
12
+ ### Synopsis
13
+
14
+ ppl shell
15
+
16
+ ### Description
17
+
18
+ Opens ppl in interactive mode, allowing users to skip typing "ppl" at the start
19
+ of every single command. This is intended to be useful in the case of longer
20
+ sessions, when a user plans to interact with ppl many times and wants to avoid
21
+ some of the repetition.
22
+
23
+ In interactive mode, all the ppl commands work as normal. The only difference is
24
+ that there is no need to prefix every command with `ppl`. So instead of typing
25
+ `ppl ls`, in interactive mode you would just type `ls`.
26
+
27
+ To exit interactive mode, type `exit`, or send a `sigint` or `eof` (Ctrl+C or
28
+ Ctrl+D usually).
29
+
30
+ ### Examples
31
+
32
+ $ ppl shell
33
+ ppl 1.5.2 (type "exit" to leave)
34
+ ppl> ls
35
+ jdoe: John Doe <jdoe@example.org>
36
+ kdoe: Kent Doe <kdoe@example.org>
37
+ ppl> exit
38
+ $
39
+
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: ppl show Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: show
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl show - Display a contact's full details
11
+
12
+ ### Synopsis
13
+
14
+ ppl show <contact>
15
+
16
+ ### Description
17
+
18
+ Display the full details of the specified `<contact>`. This command will output
19
+ all the contact details that are currently stored, including email address, date
20
+ of birth, organization, and so on.
21
+
22
+ ### Examples
23
+
24
+ $ ppl show jdoe
25
+ jdoe: John Doe <jdoe@example.org>
26
+
27
+ Birthday 1970-01-01
28
+
29
+ Phone Numbers:
30
+ 0123456789
31
+ 0543216790
32
+
33
+
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: ppl url Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: url
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl url - List, show or change URLs
11
+
12
+ ### Synopsis
13
+
14
+ ppl url
15
+ ppl url <contact>
16
+ ppl url <contact> <url>
17
+ ppl url <contact> (-d | --delete) <url>
18
+
19
+ ### Description
20
+
21
+ With no arguments, the URLs of each contact in the address book are listed.
22
+
23
+ If a `<contact>` is specified, the URLs of that contact are shown.
24
+
25
+ If both a `<contact>` and a `<URL>` are given, then the URL is added to the
26
+ contact.
27
+
28
+ If the `--delete` or `-d` flag is set, then the given `<url>` is
29
+ deleted from the specified `<contact>`.
30
+
31
+ ### Examples
32
+
33
+ $ ppl url jdoe http://facebook.com/jdoe
34
+ $ ppl url adam http://adamswebsite.com
35
+ $ ppl url jdoe
36
+ http://facebook.com/jdoe
37
+ $ ppl url
38
+ adam: http://adamswebsite.com
39
+ jdoe: http://facebook.com/jdoe
40
+
41
+ ### See Also
42
+
43
+ * [color output](/documentation/configuration/color_url)
44
+
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: ppl version Manual Page
3
+ layout: command
4
+ section: documentation
5
+ command: version
6
+ ---
7
+
8
+ ### Name
9
+
10
+ ppl version - Display ppl's version number
11
+
12
+ ### Synopsis
13
+
14
+ ppl version
15
+
16
+ ### Description
17
+
18
+ This command simply displays the current version of ppl installed on the system.
19
+
20
+ Pre-1.9.0 versions of ppl lack this command, but `gem list --local | grep ppl`
21
+ ought to do the job just fine in its absence anyway.
22
+
23
+ ### Examples
24
+
25
+ $ ppl version
26
+ ppl version 1.9.0
27
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: ppl [address book] Configuration Guide
3
+ layout: configuration
4
+ section: documentation
5
+ config_section: address book
6
+ ---
7
+
8
+ ### path
9
+
10
+ [address book]
11
+ path = ~/contacts
12
+
13
+ By default, ppl determines the location of the address book based on the user's
14
+ [working directory](http://en.wikipedia.org/wiki/Working_directory). This value
15
+ overrides that behaviour and sets a particular directory as the location of the
16
+ address book regardless of the working directory.
17
+
18
+ This is intended for the typical use-case where a user of ppl only has one
19
+ address book. The purpose is to increase the convenience of using ppl with that
20
+ single address book by removing the requirement that the user first navigate to
21
+ its directory before reading from or writing to it.
22
+
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: ppl [alias] Configuration Guide
3
+ layout: configuration
4
+ section: documentation
5
+ config_section: alias
6
+ ---
7
+
8
+ Sometimes typing the same long commands repeatedly becomes tiresome. The
9
+ `[alias]` section is intended to address this issue by providing a means of
10
+ configuring shorter forms of commands.
11
+
12
+ [alias]
13
+ l = ls
14
+ s = show
15
+
16
+ Adding the above lines to `~/.pplconfig` would allow the user to interact with
17
+ ppl as follows:
18
+
19
+ $ ppl l
20
+ jdoe: John Doe <jdoe@example.org>
21
+ fred: Fred Bloggs <fred@example.org>
22
+ $ ppl s jdoe
23
+ John Doe <jdoe@example.org>
24
+
25
+ Birthday 1970-01-01
26
+ Organization Example Organization
27
+
28
+ Email Addresses
29
+ jdoe@example.org
30
+
31
+ ### Bang Aliases
32
+
33
+ ppl's alias system is similar to git's in that it supports executing external
34
+ commands via aliases prefixed with an exclamation mark, or "bang". In your
35
+ `~/.pplconfig`, this would look something like the following:
36
+
37
+ [alias]
38
+ lsx = !ppl ls | grep -i x
39
+
40
+ The above example creates an alias `lsx` that pipes the output of [ppl
41
+ ls](/documentation/commands/ls) through `grep -i x`. This means that you
42
+ effectively create a new command - `ppl lsx` - which is identical to `ppl ls`
43
+ except that it only displays lines containing the letter x.
44
+
45
+