Commit Graph
100 Commits
Author SHA1 Message Date
Chris Lane 8dd00d8c9b Merge pull request #179 from chrisallenlane/dev
Issue #175
2014-08-06 22:06:11 -04:00
Chris Lane f9f1c5b3e4 Issue #175
Noted `tldr` as a closely-related project in the `README`.
2014-08-06 22:04:19 -04:00
Chris Lane 6a8e3f7fc6 Version bump. 2014-08-06 22:01:06 -04:00
Chris Lane 64d331265e Merge pull request #178 from chrisallenlane/root
Issue #172
2014-08-06 21:57:36 -04:00
Chris Lane e391cf2f01 Issue #172
Previously, `cheat` would exit if run by `root`. The rationale was:

If `cheat` was run by an unprivileged user (`chris`, for example), the
`$DEFAULT_CHEAT_DIR` would default to `/home/chris/.cheat`. If cheat was
run via `sudo`, however, the `$DEFAULT_CHEAT_DIR` would suddenly be
`/root/.cheat`.

Presuming that those individual user cheat dirs actually contained cheat
sheets, this could cause confusion, because cheat sheets accessible to
one user (`chris`) would not be accessible to the other (`root`). Thus,
cheatsheets would appear and disappear, depending on which user was
running `cheat`. (This would only be an issue, of course, for cheat
sheets that existed within the respective users' cheat dirs. System-wide
cheat sheets would be unaffected.)

`cheat` was thus programmed to gracefully fail when run as `root` to
prevent that possible confusion.

However, I'm backing away from that reasoning, because:

1. It's causing a headache for real users who'd like to run `cheat` as
root

2. Other venerable programs (`vim`, etc.) suffer from the same problem,
but nobody seems to mind enough to do anything about it. Thus, I suppose
the laissez-faire approach is essentially the sanctioned "solution" to
this problem.

3. Users sufficently troubled by this confusion may rememdy the problem
manually by setting environment variables (`$DEFAULT_CHEAT_DIR`, etc.)

Thus, `cheat` no longer complains if run by `root`.

Version-bumped to 2.1.0.
2014-08-06 21:56:19 -04:00
Chris Lane 3e287e62b8 Merge pull request #174 from juliushaertl/master
Add cheat for iproute2
2014-08-06 21:23:18 -04:00
Chris Lane 13429f6148 Merge pull request #177 from ahbahlut/patch-1
Update apt-get
2014-08-06 21:22:29 -04:00
Chris Lane d0324ecef3 Merge pull request #169 from chrisallenlane/tee
Added a `tee` cheatsheet
2014-06-22 17:24:39 -04:00
Chris Lane d1fb8414f8 Added a tee cheatsheet 2014-06-22 17:24:09 -04:00
Chris Lane 191a5e6e84 Trivial changes on jedahan/patch-1 2014-06-22 17:17:27 -04:00
Chris Lane e4417b2d65 Version bump
Realized a 2.0.8 had already been pushed to PyPi, so I just
version-bumped this to 2.0.9.
2014-06-03 22:38:24 -04:00
Chris Lane eda53cccd6 Minor tweaks on PR #163
- Backed out Windows-related work in `setup.py`, because it is still
  in-progress

- Minor changes to the `README`
2014-06-03 22:34:50 -04:00
Chris Lane d7d033c908 Version bump 2014-05-28 21:02:27 -04:00
Chris Lane fa4b482832 Merge branch 'py3-fix' of github.com:chid/cheat into chid-py3-fix
* 'py3-fix' of github.com:chid/cheat:
  simple py3 import change
2014-05-28 21:00:52 -04:00
Chris Lane cf8893ec5f Merge pull request #165 from chrisallenlane/no-autocomplete
Resolves #160
2014-05-28 20:51:11 -04:00
Chris Lane 0a3fd3559c Resolves #160
The `setup.py` script no longer attempts to install files to privileged
system directories. (Previously, it attempted to do this in order to
enable command-line autocompletion.) In lieu of doing this within the
installer directly, I have simply included brief instructions explaining
how to configure this manually.

Version bumped accordingly.
2014-05-28 20:49:56 -04:00
Chris Lane 371c0af156 Trivial
Deleted an unneeded space character.
2014-05-25 23:05:26 -04:00
Chris Lane 8677e0c35a Added a CONTRIBUTING.md file
- Added a CONTRIBUTING.md file
- Corrected a small indentation error
- version bump
2014-05-25 22:19:43 -04:00
Chris Lane afcaaafbe5 Improved filesystem efficiency
Previously, `sheets.print()` would query the filesystem every time it
was invoked. This was inelegant, because it is called multiple times
every time `cheat` is executed. Thus, unnecessary calls were being made
out to the filesystem.

Now the result of that function is being buffered into a module variable
when it is executed the first time, and served from there thereafter. I
broke the "functional" paradigm to a degree by doing this, but it wasn't
worth the complexity of implementing proper memoization (decorators,
etc) for such a trivial case.

Bumped the version number accordingly.
2014-05-25 21:55:25 -04:00
Chris Lane f128167311 Version bump 2014-05-25 19:47:08 -04:00
Chris Lane 74a91aa1d4 Merge branch 'windows_setup' of github.com:chid/cheat into chid-windows_setup
* 'windows_setup' of github.com:chid/cheat:
  fix setup for Windows
2014-05-25 19:45:24 -04:00
Chris Lane f0cbc2df7b Version bump 2014-05-25 19:41:45 -04:00
Chris Lane bc6e9ea8a9 Updated README
Removed some obvious-ness regarding the contributing process.
2014-04-27 11:10:41 -04:00
Chris Lane c7f2576787 Merge pull request #158 from chrisallenlane/dev
Updated the README.
2014-04-27 10:48:49 -04:00
Chris Lane e2474ad564 Updated the README. 2014-04-27 10:47:04 -04:00
Chris Lane 127e9e3273 Merge branch 'master' of github.com:chrisallenlane/cheat
* 'master' of github.com:chrisallenlane/cheat:
2014-04-27 00:29:08 -04:00
Chris Lane bb6f1018a6 Bug fix
Previously, cheat would crash if the DEFAULT_CHEAT_DIR was not set. This
should resolve that issue by creating the directory if it does not
exist.
2014-04-27 00:28:28 -04:00
Chris Lane 2184b963a1 Merge pull request #157 from chrisallenlane/flense
Performed a large refactoring
2014-04-26 23:46:04 -04:00
Chris Lane f46698b656 Performed a large refactoring
Performed an extensive refactoring on the entire application for the
sake of code-cleanliness.

- Refactored out of an ad-hoc Imperative paradigm into more of a
  functional/declarative paradigm. IMO, this makes the application
  signifcantly easier to understand.

- Moved away from `argparse` and into `docopt` for argument parsing

- Version bump to 2.0.0

- Performed extensive refactoring on the setup.py script. Script should
  install to the system more cleanly now.

- Made minor formatting changes to the --list flag output

- Updated the README

Squashed commit of the following:

commit e5681bd536aa0220cdeb7884cc248db55be408c9
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 23:30:21 2014 -0400

    Fixed many bugs

    Everything seems to work now, I think.

commit 764ec5950cee958eb1b8333ddfcb6bcd45c28429
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 21:51:31 2014 -0400

    Restructuring for the sake of setup.py

    Seem to finally have a working install script

commit 5a866c23857b77ec65070dd8023cd734f2b7c242
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 18:01:11 2014 -0400

    Nits

commit a79954ba5b33d992fa6a32abffb33b161d624e3d
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 17:53:03 2014 -0400

    Implemented search

commit b570a897e9a12c15affe1a72628deae31836dee2
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 17:11:27 2014 -0400

    Nits

commit 1a8d85b44457f1b2131b3e8475c5270b5d0899e3
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 17:02:22 2014 -0400

    Still refactoring across files

    Trying to make the program structure clearer

commit 34dffd6462e492e81ea558e2009a71051b7663c9
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 16:40:37 2014 -0400

    Breaking app into several files

    This is for the sake of code-cleanliness

commit 4825d678ff5f9817ccbf727ef71e5dea15ff2586
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 15:55:19 2014 -0400

    Got syntax highlighting working

commit c37d7a626d451bfca3d4a072eb9fed604085170f
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 15:29:22 2014 -0400

    Reduced verbosity of function names

commit 8e626045186b37dce2480f5af1994ddfa8db79b5
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 15:24:41 2014 -0400

    Refactored argument passing

    Fewer arguments now need to be passed throughout the app.

commit 807ba814650010b3dd1b59d27400b3fb4fcfede7
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Sat Apr 26 11:40:05 2014 -0400

    Working through the refactor

commit e34e6540d4f8cd727e98aac68289d515a02d5fe6
Author: Chris Lane <chris@chris-allen-lane.com>
Date:   Thu Apr 24 20:00:10 2014 -0400

    Got a basic end-to-end refactor working

    Have re-implemented just the most basic functionality in the "cheat2"
    file.
2014-04-26 23:39:19 -04:00
Chris Lane c03cca9298 Merge branch 'master' of github.com:chrisallenlane/cheat
* 'master' of github.com:chrisallenlane/cheat: (24 commits)
  [APT-GET] Change <cat | grep> to grep [PACMAN] Change the AUR instructions
  Make cheat working with python3 :)
  [DD] Watch the progress of `dd` with `pv` and `zenity`
  [APT−GET] Show apt-get installed packages
  [DD] Add some tricks for dd
  [APT-GET] Donwload deb withtou installing it
  [NMAP] Speed up nmap scan
  [NMAP] Correct a bug
  [FIND] add a cheat to find all files that have the same node (hard link) as MY_FILE
  [NMAP] Update nmap
  [IPTABLES] Add some cheats for iptables
  [SSH] add a cheat for ssh (encryption)
  [IPTABLES,TCPDUMP] Add cheats for iptables and tcpdump
  [XARGS] Add xargs example
  - Cheatsheets added for a couple of my favourite commands:    - rsync: file copy and backup multi-tool    - indent: one liner to nicely format C/C++ source.
  [PS,GREP] Exclude grep from your grepped output of ps.
  Update wget
  Update wget
  Adding two invaluable commands to tmux cheatsheet
  include commands to mirror locally
  ...
2014-04-24 18:09:10 -04:00
Chris Lane b20b6436e8 Modified the git cheatsheet 2014-04-24 18:08:58 -04:00
Chris Lane 6f00652c52 Merge pull request #156 from ImmortalPC/master
[NMAP, APT−GET, DD,PACMAN] Add some cheats + Make cheat working with python3
2014-04-21 21:05:25 -04:00
Chris Lane 406cf0dcf3 Merge pull request #154 from ImmortalPC/master
[IPTABLES,FIND,NMAP] Add some cheats for IPTables, Nmap and Find
2014-04-02 21:37:34 -04:00
Chris Lane a858032d60 Merge pull request #153 from ImmortalPC/master
[IPTABLES,TCPDUMP] Add cheats for iptables and tcpdump
2014-03-30 10:04:22 -04:00
Chris Lane 0ab7dcdcc9 Merge pull request #149 from ssherar/patch-1
Adding two invaluable commands to tmux cheatsheet
2014-03-19 22:34:20 -04:00
Chris Lane 04eabeabd5 Merge pull request #148 from brutus/master
include commands to mirror locally
2014-03-19 22:33:30 -04:00
Chris Lane d02e0d98a8 Merge pull request #150 from ImmortalPC/master
[PS,GREP] Exclude grep from your grepped output of ps.
2014-03-19 22:29:29 -04:00
Chris Lane 0ba36baa48 Merge pull request #151 from carlu/master
Cheatsheets added for a couple of my favourite commands:
2014-03-19 22:28:02 -04:00
Chris Lane e268ba3df2 Merge pull request #146 from ImmortalPC/master
[TAR] Add a new command in tar
2014-02-20 16:32:46 -05:00
Chris Lane e7d6f88912 Merge pull request #145 from davem2/journalctl
add cheat sheet for journalctl
2014-02-10 19:34:35 -05:00
Chris Lane a79391ed02 Merge pull request #140 from marlonlandaverde/wget-into-directory
Adds how to wget a file into a specific directory
2014-01-26 06:09:15 -08:00
Chris Lane 73dc4182a9 Merge pull request #139 from ImmortalPC/master
[Git:change] Add a command to show a file as it appeared at <commit id>.
2014-01-10 18:56:17 -08:00
Chris Lane 16c31c11fe Merge pull request #138 from fuzzgun/master
Added cheat sheet for irssi
2013-12-27 10:23:25 -08:00
Chris Lane af0ec35ba4 Merge pull request #137 from ImmortalPC/master
(add) AsciiArt, (change) find
2013-12-26 14:09:23 -08:00
Chris Lane e63e7b0e3c Merge pull request #136 from andrewjkerr/additional-cheatsheets
Added cheatsheets for markdown, ncat, and sqlmap.
2013-12-23 11:01:01 -08:00
Chris Lane f3685c42fa Merge pull request #135 from Erethon/feature-cheatsheets-updates
Add some new examples
2013-12-23 10:59:42 -08:00
Chris Lane d8ff70dd57 Merge pull request #133 from Mic92/patch-4
add crontab examples
2013-12-01 10:00:55 -08:00
Chris Lane 01b1cddd04 Merge pull request #132 from amitsaha/lsof_enhancements
Enhancements to 'lsof' cheatsheet.
2013-12-01 10:00:15 -08:00
Chris Lane ed4470e582 Merge pull request #134 from amitsaha/strace
Add cheatsheet for strace
2013-12-01 09:59:01 -08:00
Chris Lane 56cde2f6e5 Merge pull request #131 from lucaswerkmeister/patch-1
Add a gdb cheat sheet
2013-12-01 09:58:26 -08:00
Chris Lane 19505f5d7f Merge pull request #129 from ImmortalPC/master
Adding python (simple web server). Change netstat (deprecated).
2013-12-01 09:57:35 -08:00
Chris Lane d8c723681a Graceful failure on failed copy to DEFAULT_CHEAT_DIR
Pull request #108 added the option to automatically copy an
otherwise-uneditable cheatsheet to your DEFAULT_CHEAT_DIR upon an edit
request. This is a minor tweak that implements some graceful failing if
the DEFAULT_CHEAT_DIR does not exist.
2013-11-11 18:10:00 -05:00
Chris Lane 3234d21654 Fixing filename error in setup.py
I slightly borked a merge conflict a moment ago.
2013-11-11 17:48:06 -05:00
Chris Lane 6cae837a2f Merge branch 'master' of https://github.com/0rax/cheat into 0rax-master
* 'master' of https://github.com/0rax/cheat:
  change block generator not to held block is they are empty + minor pep8 refacto (pylint:8.85/10)
  remove debug
  indent block fail :x, no more triple output
  Some minor modification (open inside the generator for better readability) + one bug fixe (the last block wasnt yiel by the generator)
  Following #128 talk about how output should be made for search. Just changed the way on how the search function output the result, no more ala grep output. Cheatsheets are now parsed [by CheatSheets.__parse_cheat_command_block(self, cheat_fp)] into block (separated by newline), i have seen that all block in cheatsheets are delimited by a blank line, so instead of parsing from first consecutive # to last consecutive command, an output that is not used by all sheets (reference to "7z" cheatfile). And so the block are parsed by begin of the document to blanck line to end of the document. Finally the output is made by indenting the block content by 4 spaces + the title of the sheet on the top. This is a way to handle subcommands in my mind (search "git commit" and you now have all what you want)
  Added search function into cheat, used a grep like output, if needed it could be changed, discussion is open inside #128 issue
  fix edit autocomplete (just dont show description of -e/--edit option and i dont know why
  Add hint to use sudo when creation fail of sheet.
  In response to Issue #108: Added option to copy sheet while not editable.
  Added autocompletion for fish shell

Conflicts:
	setup.py
2013-11-11 17:42:48 -05:00
Chris Lane e2d10680db Trivial formatting changes on vim cheatsheet
Changed some tabs to spaces, etc.
2013-11-11 17:34:45 -05:00
Chris Lane 967fa0cedf Merge branch 'master' of https://github.com/7histle/cheat into 7histle-master
* 'master' of https://github.com/7histle/cheat:
  some new mov vim cmds
2013-11-11 17:33:49 -05:00
Chris Lane b9c60a530a Merge pull request #117 from iamsudip/gitpatch2
Added cheats
2013-11-11 14:30:35 -08:00
Chris Lane 73a8b99110 Merge pull request #126 from Mic92/patch-3
wget: continue flag
2013-11-11 14:29:25 -08:00
Chris Lane 3b604d0baa Merge pull request #127 from Mic92/master
bash: extend switch case example
2013-11-11 14:28:30 -08:00
Chris Lane e81088d379 Merge pull request #120 from Mic92/patch-2
openssl: command to show certificate infos
2013-11-03 10:54:34 -08:00
Chris Lane 931ce7a579 Merge pull request #125 from fmunch/tail
Added tail cheatsheet
2013-11-03 10:52:26 -08:00
Chris Lane e17fa47655 Merge pull request #119 from amitsaha/systemctl
systemctl cheat
2013-11-03 10:51:43 -08:00
Chris Lane c6441524b0 Git cheatsheet: trivial changes
Slightly reorganized the order in which some of the examples were
presented.
2013-10-23 22:06:48 -04:00
Chris Lane fb5721f887 Merge branch 'master' of https://github.com/Ashernor/cheat into Ashernor-master
* 'master' of https://github.com/Ashernor/cheat:
  Adding wget and curl cheats and updating git cheat

Conflicts:
	cheatsheets/curl
2013-10-23 22:04:31 -04:00
Chris Lane 59ba9e2749 Merge pull request #107 from a-sk/fix-zsh-autocompletion
Fix zsh autocompletion
2013-10-23 18:35:47 -07:00
Chris Lane 7bbe9279e1 Merge pull request #114 from iamsudip/gitcpatch
Updated git cheatsheet little
2013-10-23 18:34:11 -07:00
Chris Lane eb4e396c98 Merge pull request #116 from puchrojo/patch-1
Update README.md
2013-10-23 18:31:55 -07:00
Chris Lane 64a1e825a9 Merge pull request #115 from barisinanc/master
Fix on vim cheatsheet
2013-10-23 18:30:42 -07:00
Chris Lane b2f706ac18 Merge pull request #111 from jonlabelle/master
Add cheatsheet and examples for curl.
2013-10-23 18:29:23 -07:00
Chris Lane f5a7c30dc4 Merge pull request #110 from TiTi/master
Add cheatsheets (lsof, netstat, nmap, pdftk, ps, sam2p [new])
2013-10-08 16:58:43 -07:00
Chris Lane 9870deee6f Cheatsheets: minor tweaks
Made minor changes to the ls and rm cheatsheets.
2013-10-08 19:52:46 -04:00
Chris Lane 545c35722a Merge branch 'master' of https://github.com/0rax/cheat into 0rax-master
* 'master' of https://github.com/0rax/cheat:
  Added 1 check for EDITOR var, if EDITOR is set to "" + added try catch to catch subprocess error like EDITOR variable pointing to a non installed editor
  Split EDITOR variable to prevent error on popen while using EDITOR var with spaces
  prepare to merge
  Revert Print back to main, would be easier to integrate other positional option like that
2013-09-23 20:44:41 -04:00
Chris Lane f38da5dc69 Trivial whitespace fix on cheatsheets/date 2013-09-23 20:42:26 -04:00
Chris Lane 176120c3d6 Merge branch 'date-cheat' of https://github.com/gbremer/cheat into gbremer-date-cheat
* 'date-cheat' of https://github.com/gbremer/cheat:
  Adding date cheat
2013-09-23 20:42:00 -04:00
Chris Lane 2240eb6fd1 Trivial whitespace fix on chown cheatsheet. 2013-09-23 20:40:53 -04:00
Chris Lane f52c0d59ba Merge branch 'chown-chgrp' of https://github.com/gbremer/cheat into gbremer-chown-chgrp
* 'chown-chgrp' of https://github.com/gbremer/cheat:
  Adding reference example to chown
2013-09-23 20:40:15 -04:00
Chris Lane 4bc2a27b57 Merge pull request #106 from engstrom/master
Added cheatsheet for the top command
2013-09-23 17:39:20 -07:00
Chris Lane 6eb7ec04ff Merge pull request #102 from gbremer/ssh-keygen-fix
Fixing bit size to standard 4096
2013-09-23 17:37:37 -07:00
Chris Lane b4d19eb4ae Merge pull request #104 from gbremer/find-commands
Adding additional find commands
2013-09-23 17:37:12 -07:00
Chris Lane 350a4ee863 Merge pull request #105 from gbremer/mkdir-commands
Adding mkdir cheat
2013-09-23 17:36:35 -07:00
Chris Lane 0cc76a78a1 Trivial changes to the head cheatsheet. 2013-09-19 19:45:28 -04:00
Chris Lane 0d60d6b558 Merge branch 'patch-6' of https://github.com/maggick/cheat into maggick-patch-6
* 'patch-6' of https://github.com/maggick/cheat:
  correction
  minor spell corrections
  Create head
2013-09-19 19:42:52 -04:00
Chris Lane 963496db86 Restored -d functionality to original
During the last commit, the -d functionality was changed (likely
unintentionally) such that it outputted a raw Python list rather than
lines printed to stdout. I've restored the original functionality,
because the autocompletion scripts rely upon it.
2013-09-19 19:05:22 -04:00
Chris Lane da2b0a872d Deleted cruft
Deleted a 'foo' cheatsheet I accidentally committed while testing.
2013-09-19 18:45:43 -04:00
Chris Lane bbed1c5851 Removed the -c option from argparse
A previous revision merged the functionality implemented by the -c and
-e options, but the -c option was reintroduced during the last revision
(probably) by accident. I took that out given that it no longer serves
a purpose.
2013-09-19 18:43:56 -04:00
Chris Lane 5a026dfb41 Merge pull request #94 from fmunch/uname
Added uname cheatsheet
2013-09-14 18:20:40 -07:00
Chris Lane 4224acbc5c Merge pull request #95 from bfontaine/patch-1
Minor typo in README fixed
2013-09-14 18:19:54 -07:00
Chris Lane c819997844 Merge pull request #93 from fmunch/od
Added od cheatsheet
2013-09-14 14:10:41 -07:00
Chris Lane 78532d804b Fixed a typo in the README. 2013-09-14 12:23:19 -04:00
Chris Lane f1cdfa6dd9 Updated the README. 2013-09-14 11:35:16 -04:00
Chris Lane 30e4078688 Merge branch 'master' of github.com:chrisallenlane/cheat
* 'master' of github.com:chrisallenlane/cheat:
  tar: List content of gz/bz2 archives
2013-09-14 10:52:35 -04:00
Chris Lane 70e61d4e1f Trivial changes. Removed a copyright notice that I hadn't noticed before, and deleted a superfluous 'exit()' call. 2013-09-14 10:52:11 -04:00
Chris Lane 305584196d Merge pull request #92 from Mic92/patch-1
tar: List content of gz/bz2 archives
2013-09-14 07:37:22 -07:00
Chris Lane 587dbf3c11 Integrated the autocompletion scripts into the project, and rewrote the bash version to take advantage of the new -l option. 2013-09-14 10:27:53 -04:00
Chris Lane b24e2b7fd2 Merge branch '0rax-master' into dev
* 0rax-master:
  Added autocomplete for bash
2013-09-14 10:17:45 -04:00
Chris Lane a07079957a Resolved a merge conflict and made a minor commenting change. 2013-09-14 10:13:54 -04:00
Chris Lane 5639c995c3 Updated the help to reflect the new options. 2013-09-14 10:06:45 -04:00
Chris Lane 5e17da0246 Bug fix on the last commit. 2013-09-14 10:05:13 -04:00
Chris Lane ba4093620a Merged the 'create' and 'edit' functionality in order to DRY out the code a bit, because (IMO) the user experience is actually somewhat better when these two commands are merged. 2013-09-14 09:58:33 -04:00
Chris Lane 34f3eafb1a Created the -l option to list cheatsheets. I believe this is goign to be helpful to expose to scripts that are attempting to implement autocomplete. 2013-09-14 09:36:15 -04:00