pwss 0.5.1 → 0.6.0
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/.gitignore +9 -18
- data/.travis.yml +4 -0
- data/LICENSE.txt +17 -18
- data/README.md +454 -0
- data/Rakefile +9 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/exe/pwss +6 -0
- data/lib/pwss.rb +17 -127
- data/lib/pwss/cipher.rb +11 -74
- data/lib/pwss/cli/command_semantics.rb +402 -0
- data/lib/pwss/cli/command_syntax.rb +156 -0
- data/lib/pwss/fileops.rb +31 -22
- data/lib/pwss/generators/bank_account.rb +18 -0
- data/lib/pwss/generators/code.rb +13 -0
- data/lib/pwss/generators/credit_card.rb +23 -0
- data/lib/pwss/generators/entry.rb +36 -0
- data/lib/pwss/generators/fields.rb +119 -0
- data/lib/pwss/generators/sim.rb +15 -0
- data/lib/pwss/generators/software_license.rb +19 -0
- data/lib/pwss/password.rb +94 -0
- data/lib/pwss/safe.rb +183 -0
- data/lib/pwss/version.rb +1 -1
- data/pwss.gemspec +19 -13
- metadata +85 -25
- data/README.textile +0 -190
- data/bin/pwss +0 -445
- data/lib/pwss/bank_account.rb +0 -18
- data/lib/pwss/credit_card.rb +0 -23
- data/lib/pwss/entry.rb +0 -69
- data/lib/pwss/software_license.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c5ebe5c97190fd270c4b13f74291e55fc3bc0b0
|
4
|
+
data.tar.gz: 955e1c956e661ff7c96128cb33aa11eb929ecec5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7536170a68721a0006ff16ecfd338347df23a3766c28ae37ebc3c71e94b56881f2f7ad17a6dc888de38db1cd5c5de5e9bd40164074e416252fa592f01734abcb
|
7
|
+
data.tar.gz: f007fc3a7f4ae81991cf23401113f207b34348fb893448b1ca002335325b676e2666f0c60fc840d6dc9132f5e84a469587dabecaecf181157c99b689a69dc887
|
data/.gitignore
CHANGED
@@ -1,20 +1,11 @@
|
|
1
1
|
*~
|
2
2
|
.DS_Store
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
coverage
|
13
|
-
doc/
|
14
|
-
lib/bundler/man
|
15
|
-
pkg
|
16
|
-
rdoc
|
17
|
-
spec/reports
|
18
|
-
test/tmp
|
19
|
-
test/version_tmp
|
20
|
-
tmp
|
3
|
+
/.bundle/
|
4
|
+
/.yardoc
|
5
|
+
/Gemfile.lock
|
6
|
+
/_yardoc/
|
7
|
+
/coverage/
|
8
|
+
/doc/
|
9
|
+
/pkg/
|
10
|
+
/spec/reports/
|
11
|
+
/tmp/
|
data/.travis.yml
ADDED
data/LICENSE.txt
CHANGED
@@ -1,22 +1,21 @@
|
|
1
|
-
|
1
|
+
The MIT License (MIT)
|
2
2
|
|
3
|
-
|
3
|
+
Copyright (c) 2016 Adolfo Villafiorita
|
4
4
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
the following conditions:
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
12
11
|
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
15
14
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
OF
|
22
|
-
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,454 @@
|
|
1
|
+
Pwss
|
2
|
+
====
|
3
|
+
|
4
|
+
A password manager in the spirit of [pws](https://github.com/janlelis/pws) and
|
5
|
+
[pass](https://www.passwordstore.org/).
|
6
|
+
|
7
|
+
Different from pws and pass, PWSS manages password **files**. Each file can
|
8
|
+
contain multiple entries, possibly of different types (e.g., Entry,
|
9
|
+
CreditCard, BankAccount).
|
10
|
+
|
11
|
+
Entries in a file are structured. For instance, Entry (the default type)
|
12
|
+
stores the following fields:
|
13
|
+
|
14
|
+
- title
|
15
|
+
- username
|
16
|
+
- password
|
17
|
+
- url
|
18
|
+
- description
|
19
|
+
|
20
|
+
PWSS uses the YAML format to store files: thus, they are thus human-readable
|
21
|
+
and editable. Users can add their own fields to entries, if they wish to do
|
22
|
+
so.
|
23
|
+
|
24
|
+
Password files can be encrypted and commands allow to operate directly on
|
25
|
+
them.
|
26
|
+
|
27
|
+
|
28
|
+
Installation
|
29
|
+
------------
|
30
|
+
|
31
|
+
Type from the command line:
|
32
|
+
|
33
|
+
$ gem install pwss
|
34
|
+
|
35
|
+
PWSS depends upon the following gems: [encryptor](https://rubygems.org/gems/encryptor), [slop](https://rubygems.org/gems/slop), [clipboard](https://rubygems.org/gems/clipboard), and, starting from version 0.6.0, [gpgme](https://rubygems.org/gems/gpgme).
|
36
|
+
|
37
|
+
Password generation can use the `pwgen` utility, if available.
|
38
|
+
|
39
|
+
|
40
|
+
Quick Start
|
41
|
+
-----------
|
42
|
+
|
43
|
+
Try the following:
|
44
|
+
|
45
|
+
$ pwss init -f pwss.yaml.enc
|
46
|
+
$ pwss add -f pwss.yaml.enc First Entry
|
47
|
+
$ pwss get -f pwss.yaml.enc First
|
48
|
+
|
49
|
+
If you do not specify a filename, `pwss` will initialize a `.pwss.yaml.enc` file in your home directory.
|
50
|
+
|
51
|
+
More information with:
|
52
|
+
|
53
|
+
$ pwss
|
54
|
+
$ pwss man
|
55
|
+
$ pwss help
|
56
|
+
|
57
|
+
|
58
|
+
Detailed Instructions
|
59
|
+
---------------------
|
60
|
+
|
61
|
+
### Environment Setup: Generate a Keypair for PWSS
|
62
|
+
|
63
|
+
By default `pwss` uses GPG public-key/private-key encryption. If you want to
|
64
|
+
stick to the default, the first step is setting up a key-pair with GPG.
|
65
|
+
|
66
|
+
Type the following commands from the command line:
|
67
|
+
|
68
|
+
$ gpg --gen-key
|
69
|
+
Real name: pwss-agent
|
70
|
+
Email address: pwss-agent@example.com
|
71
|
+
|
72
|
+
If everything goes as expected, `gpg` generates a key-pair associated to the
|
73
|
+
(fake) `pwss-agent@example.com` email, which is used by `pwss` to encrypt
|
74
|
+
files with GPG.
|
75
|
+
|
76
|
+
Note. If you prefer, you can also store files in plain-text or symmetrically
|
77
|
+
encrypted with OpenSSL. In these cases, you need to use the `-f` option to
|
78
|
+
specify the file format for password files.
|
79
|
+
|
80
|
+
### Create a new Password file
|
81
|
+
|
82
|
+
`pwss init` creates a new password file, `.pwss.yaml.gpg` in your
|
83
|
+
home directory.
|
84
|
+
|
85
|
+
If you want to create multiple password files or store a password file in a
|
86
|
+
location of your choice, use the `-f` (`--filename`) option:
|
87
|
+
|
88
|
+
1. `pwss init -f MYFILE`
|
89
|
+
2. `pwss add -f MYFILE`
|
90
|
+
3. `pwss get -f MYFILE`
|
91
|
+
|
92
|
+
The file extension determines whether the file is in plain-text or encrypted.
|
93
|
+
More in details, if the file ends in:
|
94
|
+
|
95
|
+
- ".gpg", `pwss` creates an asymetrically encrypted password file (public-key,
|
96
|
+
private-key). This is the default and it has some advantages: it does not
|
97
|
+
require a password when adding an entry, it uses GPG mechanism for entering
|
98
|
+
passwords (when decrypting the file), it allows you to store the password in
|
99
|
+
the system keychain (at least on OSX).
|
100
|
+
- ".enc", `pwss` creates a symmetrically encrypted password file. The library
|
101
|
+
used is OpenSSL and the algorithm is (AES-256-CBC).
|
102
|
+
- any other extension creates a plain text file. This is the simplest and
|
103
|
+
less secure scenario. There are situations, however, in which this is
|
104
|
+
reasonable. The internal format used by `pwss` is YAML. The password files
|
105
|
+
are thus easily editable, when they are in plain text.
|
106
|
+
|
107
|
+
You can also start from an existing file, as long as it is an array of YAML
|
108
|
+
records, each containing, at least, a `title` and, possibly, a `password`
|
109
|
+
field. (See section "Under the Hood" for more details.)
|
110
|
+
|
111
|
+
In this scenario, if can use the following commands, if you want to move to an
|
112
|
+
encrypted file:
|
113
|
+
|
114
|
+
1. `pwss -f YOURFILE encrypt` to encrypt your existing password file
|
115
|
+
2. `mv YOURFILE.gpg ~/.pwss.yaml.gpg` to move the encrypted file to the
|
116
|
+
default location (not necessary, but it simplifies the workflow)
|
117
|
+
|
118
|
+
|
119
|
+
### Adding Entries
|
120
|
+
|
121
|
+
`pwss add` adds a new entry, possibly generating a random password.
|
122
|
+
|
123
|
+
If you prefer to operate on the file using a text editor, you can also `pwss
|
124
|
+
decrypt` the file, add the entry by hand, and `pwss encrypt` the file again or
|
125
|
+
just edit the file, if you don't care about encrypting your password file.
|
126
|
+
|
127
|
+
`pwss` supports different types of record, storing different information sets.
|
128
|
+
You can use the `-t` option to specify the type of an entry. **Use the command
|
129
|
+
`describe` to describe the fields stored by a specific type.**
|
130
|
+
|
131
|
+
By default `pwss` automatically generates a completely random password for new
|
132
|
+
entries. No attempt is made to make password readable or simpler to
|
133
|
+
remember. You can use the `-a` option to limit the generator to use only
|
134
|
+
digits and letters (\[0-9a-zA-Z\]): this is useful, for instance, for websites
|
135
|
+
and applications which accept only certain classes of characters. The option
|
136
|
+
`-l` controls the password length.
|
137
|
+
|
138
|
+
You can also enter the password yourself, using the `--ask` option.
|
139
|
+
|
140
|
+
After adding an entry, **its password is made available in the clipboard, so
|
141
|
+
that it can be used as needed**.
|
142
|
+
|
143
|
+
Example
|
144
|
+
|
145
|
+
pwss add
|
146
|
+
|
147
|
+
adds an entry with a random password of 16 chars. Fields such as title,
|
148
|
+
username, etc., will be asked from the console.
|
149
|
+
|
150
|
+
pwss add -t CreditCard --ask MasterCard
|
151
|
+
|
152
|
+
adds an entry of type `CreditCard`, whose title is "MasterCard". All the other
|
153
|
+
fields, including the password will be asked from the console.
|
154
|
+
|
155
|
+
|
156
|
+
### Getting Entries
|
157
|
+
|
158
|
+
`pwss get string`:
|
159
|
+
|
160
|
+
1. shows a recap of all entries whose **title** contains `string`
|
161
|
+
2. lets the user choose an entry
|
162
|
+
3. prints the chosen full entry (optionally hiding the sensitive fields)
|
163
|
+
4. makes the password of the chosen entry available in the clipboard for 45
|
164
|
+
seconds
|
165
|
+
|
166
|
+
Use the `-w` option to control how long the password is available in the
|
167
|
+
clipboard. At the end of the waiting period `pwss` clears the clipboard.
|
168
|
+
**Remark: clipboards with history are not supported. In such cases the
|
169
|
+
password will be "pushed" in the clipboard history. You might want to take
|
170
|
+
this into account.** Use `0` to keep the password in the clipboard till a key
|
171
|
+
is pressed.
|
172
|
+
|
173
|
+
Use the `--stdout` option to output the password to the console.
|
174
|
+
|
175
|
+
Example
|
176
|
+
|
177
|
+
$ pwss get my_email -w 3
|
178
|
+
|
179
|
+
will retrieve a user selected entry whose title is `my_email` and make
|
180
|
+
the password available in the clipboard for `3` seconds.
|
181
|
+
|
182
|
+
|
183
|
+
### Updating Entries
|
184
|
+
|
185
|
+
`pwss update --field field string`:
|
186
|
+
|
187
|
+
1. shows a recap of all entries whose **title** contains `string`
|
188
|
+
2. lets the user choose an entry
|
189
|
+
3. asks the value for the new chosen `field`
|
190
|
+
4. updates the password file
|
191
|
+
5. if the field is a password, it makes the password available in the
|
192
|
+
clipboard
|
193
|
+
|
194
|
+
Note. `pwss` always asks the user to select or confirm the entry to be
|
195
|
+
updated.
|
196
|
+
|
197
|
+
For instance:
|
198
|
+
|
199
|
+
$ pwss update my_email -p --method alpha -l 10 -w 20
|
200
|
+
|
201
|
+
will update a user-chosen (or confirmed) entry whose title matches `my_email`,
|
202
|
+
by replacing the existing password with one of length `10` automatically
|
203
|
+
generated by `pwss`; the password contains only alphabetic characters and
|
204
|
+
digits. The new password is made available in the clipboard for `20` seconds.
|
205
|
+
|
206
|
+
### Deleting Entries
|
207
|
+
|
208
|
+
`pwss destroy string` deletes an entry from a password file matching `string`.
|
209
|
+
|
210
|
+
Similar to update, the command requires the user to select (multiple matches)
|
211
|
+
or confirm (single match) which entry has to be deleted.
|
212
|
+
|
213
|
+
### Moving from plain text to encrypted files (and viceversa)
|
214
|
+
|
215
|
+
You can use the `encrypt` and `decrypt` commands at any time to move from the
|
216
|
+
plain to the encrypted format.
|
217
|
+
|
218
|
+
$ pwss encrypt -f YOURFILE
|
219
|
+
|
220
|
+
will encrypt `YOURFILE`, while `decrypt` will perform the opposite operation.
|
221
|
+
By default password files are encrypted with GPG. You can use the option
|
222
|
+
`--symmetric` to change to a symmetric encryption using OpenSSL.
|
223
|
+
|
224
|
+
If you are using `gpg`, you need to create a gpg key `pwss-agent
|
225
|
+
<pwss-agent@example.com>`, as described above (See "Environment Setup:
|
226
|
+
Generate a Keypair for PWSS").
|
227
|
+
|
228
|
+
### The default safe
|
229
|
+
|
230
|
+
By default `pwss` operates on `~/.pwss.yaml.enc`. If this file is not
|
231
|
+
found, `pwss` will try with `~/.pwss.yaml.gpg` and, if the previous
|
232
|
+
two files are not found, with `~/.pwss.yaml`. This allows one to keep
|
233
|
+
the file encrypted or in plain text without having to specify `-f`
|
234
|
+
every time.
|
235
|
+
|
236
|
+
If you are not sure which file `pwss` is operating on, use the
|
237
|
+
`default` command.
|
238
|
+
|
239
|
+
|
240
|
+
### The Console
|
241
|
+
|
242
|
+
Starting from version 0.6.0, `pwss` comes with a console. The main advantage
|
243
|
+
is that the file you operate on is cached in memory and the master password
|
244
|
+
does not need to be entered any time you perform a query.
|
245
|
+
|
246
|
+
Note. The advantage is more evident when using symmetric encryption, since GPG
|
247
|
+
does not require a password for adding entries and it also already implement a
|
248
|
+
caching mechanism, which allows to perform multiple reading operations on a
|
249
|
+
password file without entering the password at every command.
|
250
|
+
|
251
|
+
To start the console, use the command `console`, optionally specifying a file.
|
252
|
+
The file is opened and used as the default file for all subsequent commands,
|
253
|
+
unless a command is given the `-f` option, in which case the command operates
|
254
|
+
on the file specified with `-f`.
|
255
|
+
|
256
|
+
To change the default file from an open console, use the `open -f` command.
|
257
|
+
|
258
|
+
Example
|
259
|
+
|
260
|
+
$ pwss console -f a.yaml.enc
|
261
|
+
Enter master password: ....
|
262
|
+
|
263
|
+
pwss:000> get an entry
|
264
|
+
... (search in a.yaml.enc)
|
265
|
+
pwss:001> get another entry
|
266
|
+
... (search in a.yaml.enc, no password asked)
|
267
|
+
pwss:002> open -f another_file.yaml
|
268
|
+
pwss:003> get another entry
|
269
|
+
... (search in another_file.yaml)
|
270
|
+
pwss:004> get -f old.yaml another entry
|
271
|
+
... (search in old.yaml)
|
272
|
+
pwss:005> get another entry
|
273
|
+
... (search in the default file, i.e., another_file.yaml)
|
274
|
+
|
275
|
+
The syntax of the commands available in the console is the same you have
|
276
|
+
available from the shell. Type `help` if in doubt.
|
277
|
+
|
278
|
+
|
279
|
+
### Under the Hood/Editing your file by hand
|
280
|
+
|
281
|
+
`pwss` adopts a human-readable format for storing passwords, when the file is
|
282
|
+
not encrypted, of course! (Unless you have mathematical super-powers and can
|
283
|
+
read encrypted text.)
|
284
|
+
|
285
|
+
The password file store data as an array of YAML records. By default, a
|
286
|
+
record contains:
|
287
|
+
|
288
|
+
- title
|
289
|
+
- username
|
290
|
+
- password
|
291
|
+
- url
|
292
|
+
- description
|
293
|
+
|
294
|
+
Notice that only `title` and `password` are required and
|
295
|
+
|
296
|
+
Example
|
297
|
+
|
298
|
+
- title: A webservice
|
299
|
+
username: username@example.com
|
300
|
+
password: 1234567890
|
301
|
+
url: http://www.example.com
|
302
|
+
description: |-
|
303
|
+
with a password like the one above, who needs a password file?
|
304
|
+
|
305
|
+
- title: My email
|
306
|
+
username: username@example.com
|
307
|
+
password: 1234567890
|
308
|
+
url: http://www.example.com
|
309
|
+
description: >
|
310
|
+
Also available via email client, with the following connection parameters
|
311
|
+
smtp.example.com
|
312
|
+
imap.example.com
|
313
|
+
|
314
|
+
### Getting Help and Support
|
315
|
+
|
316
|
+
If in doubt, type `pwss` to get the list of available commands.
|
317
|
+
|
318
|
+
$ pwss
|
319
|
+
|
320
|
+
will show all command options.
|
321
|
+
|
322
|
+
$ pwss help cmd1 ... cmdN
|
323
|
+
|
324
|
+
will show the syntax of `cmd1`, ..., `cmdN`.
|
325
|
+
|
326
|
+
$ pwss man
|
327
|
+
|
328
|
+
will show the man page.
|
329
|
+
|
330
|
+
|
331
|
+
Changelog
|
332
|
+
---------
|
333
|
+
|
334
|
+
- **Release 0.6.0** introduces some major changes to functions, command syntax,
|
335
|
+
and code structure.
|
336
|
+
More in details:
|
337
|
+
- `pwss` can now use **GPG** asymmetric encryption, if you wish so.
|
338
|
+
To enable `gpg` follow the instructions above. The advantage: no
|
339
|
+
need to enter a password for adding data.
|
340
|
+
- `pwss` will try different default files, before giving up (in order:
|
341
|
+
`~/.pwss.yaml.gpg`, `.pwss.yaml.enc`, `.pwss.yaml`). If
|
342
|
+
you are in doubt about which command `pwss` is operating on,
|
343
|
+
use the `pwss default` command.
|
344
|
+
- added a **console**, which allows to perform multiple operations on the
|
345
|
+
same file. When using symmetric encryption, one of the advantages is
|
346
|
+
that the password is entered only once. (Similarly for GPG, but in
|
347
|
+
this case GPG has password caching built-in.)
|
348
|
+
- added a `describe` command to list the entry types and their fields
|
349
|
+
- by default a random password is generated when adding
|
350
|
+
new entries. Use `--ask` to enter the password interactively
|
351
|
+
- added a new option `pwgen`, which uses the
|
352
|
+
`pwgen` command line utility for generating password
|
353
|
+
- `get` now accepts a specification of the field to copy to the
|
354
|
+
clipboard
|
355
|
+
- the `get` command now presents only basic fields of the matching
|
356
|
+
entries. This hides any sensitive field from view when searching for
|
357
|
+
entries. The full entry is shown when chosen, unless the `--hide` option
|
358
|
+
is used.
|
359
|
+
- a new `--hide` option of the `get` command allows to hide
|
360
|
+
sensitive data after a match. In this case you can still
|
361
|
+
copy a field using the `--field` option.
|
362
|
+
- the ids shown in the list generated by the get command are
|
363
|
+
absolute (i.e., the index of the entry in the file). This will
|
364
|
+
allow to add a command which gets an entry by ID.
|
365
|
+
- new type SIM for SIM cards (fields: title, pin, and puk)
|
366
|
+
- new type Code for a secret code (e.g., locker; fields: title and code)
|
367
|
+
- dropped support for `created_at` and `updated_at`. No problem if
|
368
|
+
an entry has them: `pwss` won't touch them. If you want to remove
|
369
|
+
these fields from your entries, use the `--clean-timestamp` option.
|
370
|
+
For instance: `pwss list --clean-timestamps > .new-pwss.yaml`
|
371
|
+
|
372
|
+
Bug fixes:
|
373
|
+
- the `list` command now shows the fields of all records always
|
374
|
+
in the same order. This fixes a readability problem with
|
375
|
+
manually entered fields ... and with the order in which recent
|
376
|
+
versions of `pwss` stored fields. If you want to clean your
|
377
|
+
password file, use `pwss list`.
|
378
|
+
- fixed a long-standing bug when updating the description field.
|
379
|
+
Now the field is correctly recognized as multiline and the
|
380
|
+
update function works as it should
|
381
|
+
- fixed a long-standing bug which stored the closing dot in
|
382
|
+
multiline fields
|
383
|
+
- fixed some typos in messages
|
384
|
+
|
385
|
+
- **Release 0.5.1** fixes a bug of the "add" command, which threw an
|
386
|
+
error if the title was not supplied on the command line. When adding
|
387
|
+
an entry, now it is possible to specify the title on the command
|
388
|
+
line or just wait for the title prompt
|
389
|
+
|
390
|
+
- **Release 0.5.0** This is a release mainly focused on
|
391
|
+
improving interaction. It includes small changes to the command
|
392
|
+
syntax and improved exit conditions. In details:
|
393
|
+
- **add** now accepts the title in the command line. For instance
|
394
|
+
`pwss add New Entry`
|
395
|
+
- **new** is now an alias for the **add** command
|
396
|
+
- **update** now requires to specify the field: use `-p`,
|
397
|
+
`--password`, or `--field password`, if you want to update the
|
398
|
+
password
|
399
|
+
- `pwss` now shows usage summary, if no arguments are given
|
400
|
+
- **C-c** is now trapped and properly managed (clearing
|
401
|
+
the clipboard)
|
402
|
+
- decryption errors are now properly managed
|
403
|
+
- the content of the clipboard is now restored after the waiting
|
404
|
+
period
|
405
|
+
|
406
|
+
- **Release 0.4.0**
|
407
|
+
- New `--stdout` option will output password to standard output
|
408
|
+
(useful for integration with other applications)
|
409
|
+
- New `--select N` option will automatically select the `N`th
|
410
|
+
entry (rather than asking the user to select an entry).
|
411
|
+
|
412
|
+
- **Release 0.3.0**
|
413
|
+
- internal refactoring: CLI parsing is now based on
|
414
|
+
[Slop](https://github.com/leejarvis/slop). The documentation has
|
415
|
+
been revised and should now be simpler to understand.
|
416
|
+
- added some controls to avoid overwriting existing files (in
|
417
|
+
particular: init, encrypt, and decrypt). The command is now less
|
418
|
+
Unix-like, but I hope you will appreciate a bit more safety.
|
419
|
+
|
420
|
+
- **Release 0.2.0** (never really made it to the public -- use
|
421
|
+
version 0.3.0)
|
422
|
+
- it is now possible to add entries of various types (= with
|
423
|
+
different fields). The supported types include: CreditCard,
|
424
|
+
BankAccount, SoftwareLicense. Use the -e (--entry) option to
|
425
|
+
specify the type of entry to add
|
426
|
+
- an empty string can now be used to exit (instead of -1) when
|
427
|
+
multiple matches are found
|
428
|
+
|
429
|
+
- **Release 0.1.0**
|
430
|
+
- the update command now allows one to update the password or any
|
431
|
+
other field of existing entries
|
432
|
+
- a simple password generator allows pwss to generate a random
|
433
|
+
password
|
434
|
+
- most commands make the password of the selected entry available
|
435
|
+
in the clipboard (useful, for instance, if you automatically
|
436
|
+
generate a password)
|
437
|
+
- a destroy command allows one to delete an entry from a password
|
438
|
+
file. Similar to get, all entries matching a query are shown. The user
|
439
|
+
is then asked to select which entry has to be deleted or stop.
|
440
|
+
User confirmation is required even in case of a single match.
|
441
|
+
|
442
|
+
License
|
443
|
+
-------
|
444
|
+
|
445
|
+
Licensed under the terms of the MIT License.
|
446
|
+
|
447
|
+
Contributing
|
448
|
+
------------
|
449
|
+
|
450
|
+
1. Fork it (http://github.com/<my-github-username>/pwss/fork )\
|
451
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)\
|
452
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)\
|
453
|
+
4. Push to the branch (`git push origin my-new-feature`)\
|
454
|
+
5. Create new Pull Request
|