-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.rst
192 lines (134 loc) · 5.03 KB
/
README.rst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
.. figure:: http://i.imgur.com/y8g506n.png?1
:alt:
joe
===
A ``.gitignore`` magician in your command line. Joe generates
``.gitignore`` files from the command line for you.
.. figure:: http://i.imgur.com/ghmJLUP.gif
:alt:
Features
--------
- Written in uncomplicated Python
- Easy to `install <https://github.com/karan/joe#installation>`__
- Stupidly `easy to use <https://github.com/karan/joe#usage>`__
- Supports all Github-supported ```.gitignore``
files <https://github.com/karan/joe#list-all-available-files>`__
- Works on Mac, Linux and Windows
- Supports other version control systems (``.hgignore``)
Installation
------------
Option 1: Homebrew
~~~~~~~~~~~~~~~~~~
.. code:: bash
$ brew update
$ brew tap karan/karan
$ brew install gitignore
Option 2: `Pip <https://pypi.python.org/pypi/joe>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
$ pip install joe
Option 3: From source
~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
$ git clone --recursive [email protected]:karan/joe.git
$ cd joe/
$ python setup.py install
Usage
-----
Basic usage
~~~~~~~~~~~
.. code:: bash
$ joe java # outputs .gitignore file for java to stdout
Overwrite existing ``.gitignore`` file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
$ joe java > .gitignore # saves a new .gitignore file for java
Append to existing ``.gitignore`` file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
$ joe java >> .gitignore # appends to an existing .gitignore file
Multiple languages
~~~~~~~~~~~~~~~~~~
.. code:: bash
$ joe java node osx > .gitignore # saves a new .gitignore file for multiple languages
Create and append to a global .gitignore file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also use joe to append to a global .gitignore. These can be
helpful when you want to ignore files generated by an IDE, OS, or
otherwise.
.. code:: bash
$ git config --global core.excludesfile ~/.gitignore # Optional if you have not yet created a global .gitignore
$ joe OSX SublimeText >> ~/.gitignore
List all available files
~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
$ joe ls # OR `joe list`
Output:
actionscript, ada, agda, android, anjuta, appceleratortitanium,
archives, archlinuxpackages, autotools, bricxcc, c, c++, cakephp,
cfwheels, chefcookbook, clojure, cloud9, cmake, codeigniter,
codekit, commonlisp, composer, concrete5, coq, craftcms, cvs, dart,
darteditor, delphi, dm, dreamweaver, drupal, eagle, eclipse,
eiffelstudio, elisp, elixir, emacs, ensime, episerver, erlang,
espresso, expressionengine, extjs, fancy, finale, flexbuilder,
forcedotcom, fortran, fuelphp, gcov, gitbook, go, gradle, grails,
gwt, haskell, idris, igorpro, ipythonnotebook, java, jboss,
jdeveloper, jekyll, jetbrains, joomla, jython, kate, kdevelop4,
kohana, labview, laravel, lazarus, leiningen, lemonstand,
libreoffice, lilypond, linux, lithium, lua, lyx, magento, matlab,
maven, mercurial, mercury, metaprogrammingsystem, meteor,
microsoftoffice, modelsim, momentics, monodevelop, nanoc, netbeans,
nim, ninja, node, notepadpp, objective-c, ocaml, opa, opencart,
oracleforms, osx, packer, perl, phalcon, playframework, plone,
prestashop, processing, python, qooxdoo, qt, r, rails, redcar,
redis, rhodesrhomobile, ros, ruby, rust, sass, sbt, scala, scons,
scrivener, sdcc, seamgen, sketchup, slickedit, stella, sublimetext,
sugarcrm, svn, swift, symfony, symphonycms, tags, tex, textmate,
textpattern, tortoisegit, turbogears2, typo3, umbraco, unity,
vagrant, vim, virtualenv, visualstudio, vvvv, waf, webmethods,
windows, wordpress, xcode, xilinxise, xojo, yeoman, yii,
zendframework, zephir
BONUS ROUND: Alternate version control software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Joe isn't **just** a generator for ``.gitignore`` files. You can use it
and its output wherever a SCM is used.
.. code:: bash
$ joe java > .hgignore
Contributing
------------
Bug Reports & Feature Requests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Please use the `issue tracker <https://github.com/karan/joe/issues>`__
to report any bugs or file feature requests.
Developing
^^^^^^^^^^
PRs are welcome. To begin developing, do this:
.. code:: bash
# make virtual env
$ git clone --recursive [email protected]:karan/joe.git
$ cd joe/
$ python joe/joe.py java
``tool.sh``
^^^^^^^^^^^
This is a handly script that automates a lot of developing steps.
.. code:: bash
USAGE:
$ tool.sh [-h|--help] COMMAND
EXAMPLES:
$ tool.sh readme Generate README.rst from README.md
$ tool.sh test Upload release to testpypi
$ tool.sh prod Upload release to prod pypi
Make sure you have a file ``.pypirc`` in ``~/`` in the following format:
::
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository: https://pypi.python.org/pypi
username: <<>>
password: <<>>
[pypitest]
repository: https://testpypi.python.org/pypi
username: <<>>
password: <<>>