Commit Graph

212 Commits

Author SHA1 Message Date
Erik Cox
dde3acf109 Added a condition in prompt_yes_or_no() to use input or raw_input 2014-09-13 15:46:57 -07:00
Erik Cox
d1d5d84e4c First attempt at making utils.py compatible with Python 2 and 3. 2014-09-13 15:09:40 -07:00
Brandon Pierce
41d2a810e6 add debugging examples for bash
add new command route
2014-08-13 10:49:56 -07:00
Chris Lane
28478ff257 Merge pull request #181 from laomaiweng/cheatsheets
Additional cheatsheets: rpm, hub
2014-08-11 21:34:12 -04:00
barhamd
ce611eaceb Never parse ls.
http://mywiki.wooledge.org/ParsingLs

It's about the only thing I really know about bash.
2014-08-08 11:52:43 -06:00
quentin
ab2d96edb4 Add new readline cheatsheet 2014-08-07 12:32:34 +02:00
quentin
b193112a13 Add new ['hub'](https://hub.github.com/) cheatsheet 2014-08-07 12:00:48 +02:00
quentin
db92b4c5d8 Add new 'rpm' cheatsheet 2014-08-07 11:59:59 +02: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
Baptiste D.
f125db6f45 Update apt-get
Mistake on #7
2014-08-06 09:25:08 +02:00
Julius Haertl
7bd603cf23 Add cheat for iproute2 2014-07-29 12:13:32 +02:00
Chris Lane
d1fb8414f8 Added a tee cheatsheet 2014-06-22 17:24:09 -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
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
Charley Peng
6a4414f538 simple py3 import change 2014-05-29 09:56:54 +10: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
Charley Peng
2f56270ded Fix geteuid not existing on Windows 2014-05-24 16:16:59 +10: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
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
ImmortalPC
4c31138bbf Make cheat working with python3 :) 2014-04-18 18:43:17 +02: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
0rax
fc2bb05f7b change block generator not to held block is they are empty + minor pep8 refacto (pylint:8.85/10) 2013-11-07 11:23:51 +01:00
0rax
b264c19491 remove debug 2013-11-07 00:42:37 +01:00
0rax
4c5bd8efa5 indent block fail :x, no more triple output 2013-11-07 00:41:36 +01:00
0rax
69428a7279 Some minor modification (open inside the generator for better readability) + one bug fixe (the last block wasnt yiel by the generator) 2013-11-07 00:34:37 +01:00
0rax
d85fab763b 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)
2013-11-07 00:23:54 +01:00
0rax
b1212052f7 Added search function into cheat, used a grep like output, if needed it could be changed, discussion is open inside #128 issue 2013-11-06 00:36:49 +01:00
0rax
53978fa86f Add hint to use sudo when creation fail of sheet. 2013-10-11 18:56:03 +02:00
0rax
fc4b047958 In response to Issue #108: Added option to copy sheet while not editable. 2013-10-11 18:32:21 +02:00
0rax
50b04c52e1 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 2013-09-20 02:27:06 +02:00
0rax
72b7af171d Split EDITOR variable to prevent error on popen while using EDITOR var with spaces 2013-09-20 02:12:48 +02: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
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
roemer_j
c87e741f34 Made a OO refactoring, cleaner in my mind 2013-09-16 04:07:34 +02:00
roemer_j
1e1520ce56 Removed old help, just forgot to remove at first commit 2013-09-16 03:28:08 +02:00
roemer_j
526a9f595a Refactored for argparse, the help output dont remain the same : too much sheets so I thought that do not print cheatlist every time could be a good things. Added description + epilogue (examples) to the standart argparse output. 2013-09-16 03:26:20 +02:00
Johann Saunier
98b254b799 2to3 2013-09-15 11:02:27 +02: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
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
Chris Lane
be7bc488b0 Breaking logic in the main function out into smaller components. 2013-09-14 09:23:33 -04:00
Chris Lane
1894ce6297 Making some minor code readability changes. 2013-09-14 09:06:30 -04:00
Chris Lane
48cdbdd836 Moved around some code blocks for the sake of readabilty. 2013-09-14 08:56:36 -04:00
Chris Lane
64cba079f9 Merge branch 'master' of https://github.com/ritchielincoln/cheat into ritchielincoln-master
* 'master' of https://github.com/ritchielincoln/cheat:
  give user the option to edit cheatsheet when trying to create an existing cheatsheet
2013-09-07 18:43:13 -04:00
Ritchie Lincoln
ffcafa4480 give user the option to edit cheatsheet when trying to create an existing cheatsheet 2013-09-07 12:41:51 -06:00
Chris Lane
b107019664 Merge branch 'minus-d-uses-new-line-sep' of https://github.com/a-sk/cheat into a-sk-minus-d-uses-new-line-sep
* 'minus-d-uses-new-line-sep' of https://github.com/a-sk/cheat:
  -d now separates output using a newline
2013-09-07 13:34:45 -04:00
Chris Lane
11b680f49b Merging. 2013-09-07 13:28:10 -04:00
John Shanahan
4fe31ec479 Added 'import argparse' to 'cheat' 2013-09-05 22:50:55 -04:00
a-sk
ebdca118ea -d now separates output using a newline 2013-09-04 09:52:54 +04:00
John Shanahan
139ff6c32e Merge 2013-09-03 23:53:58 -04:00
John Shanahan
9b88afec33 Added GPL3 license to top of 'cheat' as required. 2013-09-02 07:39:43 -04:00
Chris Lane
14821d424c Minor modifications on the cheat file. Broke the -d option out into its own logical block. 2013-09-01 14:41:29 -04:00
Chris Lane
91d01d9b96 Merge branch 'zsh_completions' of https://github.com/a-sk/cheat into a-sk-zsh_completions
* 'zsh_completions' of https://github.com/a-sk/cheat:
  Install zsh completions
  Add zsh cheats completions
  Add -d/--cheat_directories option to list directories containing cheatsheets
2013-09-01 14:36:02 -04:00
a-sk
23de32ce50 Remove odd new line 2013-08-29 19:16:01 +04:00
a-sk
5c51f457a0 Add -d/--cheat_directories option to list directories containing cheatsheets 2013-08-29 19:12:00 +04:00
a-sk
e662862b7b Introduce DEFAULT_CHEAT_DIR environment variable
Now ~/.cheat can be overridden
2013-08-29 18:20:23 +04:00
Chris Lane
6990807010 Updated the help command to mention the new create/edit capabilities. Vaguely followed the docopt syntax. 2013-08-26 21:17:55 -04:00
Chris Lane
cdc2b8ee4d Wrapped some more parenthesis around print statements to retain compatibility with Python 3.3. 2013-08-26 20:16:43 -04:00
Chris Lane
63c391f67a When creating a new cheatsheet using the -c option, the program now
first attempts to write to the ~/.cheat directory, or alternatively
create it if it does not already exist. Failing that, it attempts to
write to the python package directory.
2013-08-26 20:12:59 -04:00
Chris Lane
3399b8905d Removed the asterisks denoting the boundaries of the cheatsheets. 2013-08-26 19:45:12 -04:00
Chris Lane
cd1b43118d Merge branch 'master' of https://github.com/bradtse/cheat into bradtse-master
* 'master' of https://github.com/bradtse/cheat:
  Added in a create option also
  Added in an edit option that allows a user to edit the cheatsheet from their default editor. Also made some visual changes to the output of the cheatsheet.
2013-08-26 19:42:40 -04:00
John Shanahan
5e4186f426 Added Python 3 support. 2013-08-25 14:29:44 -04:00
Bradley Tse
dc0b793b95 Added in a create option also 2013-08-23 15:25:04 -04:00
Bradley Tse
dcf8e758a8 Added in an edit option that allows a user to edit the cheatsheet from their default editor. Also made some visual changes to the output of the cheatsheet. 2013-08-23 14:30:03 -04:00
Chris Lane
c9329b2e89 Minor tweak on the last commit. 2013-08-21 23:09:31 -04:00
Chris Lane
c15e836268 Made it also necessary to set an environment variable in order to display colors to the terminal (in an effort to avoid an otherwise inevitable holy-war). 2013-08-21 22:56:33 -04:00
Chris Lane
fabd1bc242 Resolved a trivial merge conflcit in cheatsheets/sed. Resolved major merge conflict in ./cheat. Made very minor revision to @larsyencken's patch to prevent __init__.py/c files from being listed as cheatsheets. 2013-08-21 22:49:07 -04:00
Chris Lane
07c49e8540 Minor tweak to @smartboyathome's patch. 2013-08-21 22:28:28 -04:00
Lars Yencken
f89d887c21 Add a check for posix environment for pygments. 2013-08-22 09:19:31 +10:00
Lars Yencken
39a15a669a Make Pygments a soft dependency. 2013-08-21 19:33:09 +10:00
Lars Yencken
c6bb350a13 Colorize output using Pygment lexers. 2013-08-21 17:05:52 +10:00
Lars Yencken
17b2148d6e Reformat to meet PEP8 style. 2013-08-21 16:46:10 +10:00
Lars Yencken
9140d2ebfb Allow suffixes for cheat files (e.g. DataFrames.jl). 2013-08-21 16:35:39 +10:00
Alex Abbott
b188629b92 Making the default cheats directory Windows-compatible. 2013-08-20 14:56:12 -07:00
Chris Lane
1e26280da7 Added some comments to the cheat file. 2013-08-19 21:35:51 -04:00
Chris Lane
e3d6976a03 Merging. 2013-08-19 21:15:02 -04:00
John Shanahan
01b35ab0b7 Added main function and wrapped everything in it. 2013-08-19 15:23:53 -04:00
Louis Taylor
570d05349e No breakage when cheatsheets package isn't found
This means cheat can be installed in only the home directory again.
2013-08-19 09:02:53 +01:00
John Shanahan
84f3105139 Changed lines so none were over 80 columns. 2013-08-18 22:52:35 -04:00
Chris Lane
26e5261713 Did a refactoring to incorporate kragniz's work a little more delicately. 2013-08-18 15:53:40 -04:00
Chris Lane
54f379eda5 Fixed a bug whereby the 'cheatsheet not found' error would always be displayed. 2013-08-18 15:14:19 -04:00
Louis Taylor
9946bab1a9 Don't split cheatpath for no reason 2013-08-18 17:41:32 +01:00
Louis Taylor
cdf0aa1926 Remove duplicates from the list of cheatsheets. 2013-08-17 03:16:44 +01:00
Louis Taylor
73d9f0c83d Merge https://github.com/chrisallenlane/cheat
Conflicts:
	README.md
	cheat
	install
2013-08-17 02:38:31 +01:00
Louis Taylor
b38bbceb8a Change indent level from 2 spaces to 4. 2013-08-16 09:47:43 +01:00
Louis Taylor
63b0ffba14 Don't require the package to be available. 2013-08-16 03:02:33 +01:00
Chris Lane
13c8d60d75 Merging shanahanjrs work into master. 2013-08-15 18:19:02 -04:00
Chris Lane
10cb62fee9 Continuing to merge gbremer's work into master. 2013-08-15 18:03:58 -04:00
John Shanahan
cc47515f41 Added '-help' and 'cheat' to the list of cheat usage arguments. 2013-08-15 17:49:30 -04:00
John Shanahan
7cf6291c8a Changed from 2-spaces per indentation level to 4, per PEP-8 standard. 2013-08-14 10:36:00 -04:00
Louis Taylor
3c9136b476 Replace support for user's .cheat directories 2013-08-13 11:42:58 +01:00
Louis Taylor
8dda6a9241 Package with distutils
Created cheatsheets package to store the default sheets.
2013-08-13 11:01:06 +01:00
Grant Bremer
8bd5aaad2c Adding support for CHEATPATH variable and multiple cheat locations 2013-08-12 21:59:33 -04:00
Chris Lane
39b1cf391f Refactored the application per some feedback on reddit. 2013-08-11 15:37:11 -04:00
Chris Lane
cbbd18e621 Attempting to cheatsheets out of application logic. 2013-08-10 17:08:17 -04:00
Chris Lane
8e9cfc0eb1 Still hacking in cheat sheets. Wrote a trivial python installer. 2013-08-10 16:32:49 -04:00
Chris Lane
1786a57d5e Still adding commands. 2013-08-10 11:26:56 -04:00
Chris Lane
e51fa9b29f Adding more cheat sheets. 2013-08-10 10:16:13 -04:00
Chris Lane
8093424dbd Added some notes. 2013-08-09 23:46:34 -04:00
Chris Lane
66166e3dd4 Still writing cheat sheets. Also made trivial changes to the README. 2013-08-09 23:17:22 -04:00
Chris Lane
50b47445ad On help, the 'Available keyphrases' output is now alphabetized. 2013-08-09 22:24:12 -04:00
Chris Lane
76cce9d584 Added more cheat sheets. 2013-08-09 21:56:42 -04:00
Chris Lane
aca0900430 Tweaks. 2013-07-30 23:57:04 -04:00
Chris Lane
87f1fe13b6 Cleaned up some python. Added support for subcommands. 2013-07-30 23:33:31 -04:00
Chris Lane
9681886409 Hacking in some refinements. 2013-07-30 23:25:36 -04:00
Chris Lane
1188238381 Got a working version. 2013-07-30 22:48:07 -04:00