Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trentm/eol
a command-line script and Python module for working with text file end-of-line (EOL) characters
https://github.com/trentm/eol
Last synced: about 2 months ago
JSON representation
a command-line script and Python module for working with text file end-of-line (EOL) characters
- Host: GitHub
- URL: https://github.com/trentm/eol
- Owner: trentm
- License: other
- Created: 2010-05-07T06:34:08.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2022-08-10T21:07:09.000Z (over 2 years ago)
- Last Synced: 2024-10-19T19:54:56.218Z (2 months ago)
- Language: Python
- Homepage:
- Size: 68.4 KB
- Stars: 17
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.txt
Awesome Lists containing this project
README
`eol` is both a command-line script `eol` and a Python module `eol` for working
with end-of-line chars in text files.This project lives here:
## Installation
To install in your Python's global site-packages use one of the
following:pip install eol
pypm install eol # if you use ActivePython (http://www.activestate.com/activepython)But you use a
[virtualenv](http://www.arthurkoziel.com/2008/10/22/working-virtualenv/),
right? If so, then use one of the following:pip -E path/to/env install eol
pypm -E path/to/env install eol## Command-line examples
**List the EOL-style** of given paths:
$ eol *.txt
foo_cr.txt: Mac Classic (CR)
foo_crlf.txt: Windows (CRLF)
foo_empty.txt: No EOLs
foo_lf.txt: Unix (LF)
foo_mixed.txt: Mixed, predominantly Unix (LF)Recursively:
$ eol -r ~/src/redis
/Users/trentm/src/redis/.gitignore: Unix (LF)
/Users/trentm/src/redis/BETATESTING.txt: Unix (LF)
/Users/trentm/src/redis/BUGS: Unix (LF)
/Users/trentm/src/redis/COPYING: Unix (LF)
...
/Users/trentm/src/redis/zmalloc.h: Unix (LF)
/Users/trentm/src/redis/.git/HEAD: Unix (LF)
/Users/trentm/src/redis/.git/config: Unix (LF)
...
/Users/trentm/src/redis/client-libraries/README: Unix (LF)
/Users/trentm/src/redis/design-documents/REDIS-CLUSTER: Unix (LF)
/Users/trentm/src/redis/doc/AppendOnlyFileHowto.html: Unix (LF)
/Users/trentm/src/redis/doc/AuthCommand.html: Unix (LF)
...**Find files** with the given EOL-style:
$ eol -f dos -x .svn -r ~/src/python
/Users/trentm/src/python/Doc/make.bat
/Users/trentm/src/python/Lib/email/test/data/msg_26.txt
/Users/trentm/src/python/Lib/encodings/cp720.py
/Users/trentm/src/python/Lib/test/decimaltestdata/and.decTest
...
/Users/trentm/src/python/PC/VS8.0/x64.vsprops
/Users/trentm/src/python/PCbuild/pcbuild.sln
...**Convert files** to a given EOL-style:
$ eol ~/src/python/Tools/msi/merge.py
/Users/trentm/src/python/Tools/msi/merge.py: Windows (CRLF)
$ eol -c cr ~/src/python/Tools/msi/merge.py
# But who really wants CR (aka Mac Classic, '\r') EOLs.
# "native" is an alias for the EOL-style native to the current platform
$ eol -c native ~/src/python/Tools/msi/merge.py
converted `/Users/trentm/src/python/Tools/msi/merge.py' to LF EOLs
$ eol ~/src/python/Tools/msi/merge.py
/Users/trentm/src/python/Tools/msi/merge.py: Unix (LF)## Module examples
**List the EOL-style** of given paths:
>>> import eol, glob
>>> for path in glob.glob("*.txt")
>>> for path in glob.glob("*.txt"):
... print path, eol.eol_info_from_path(path)
...
foo_cr.txt ('\r', '\r') # (, )
foo_crlf.txt ('\r\n', '\r\n')
foo_empty.txt (None, '\n') # suggests the native EOL for empty content
foo_lf.txt ('\n', '\n')
foo_mixed.txt (, '\n')Recursively:
>>> for i in eol.eol_info_from_path_patterns(["/Users/trentm/src/redis"], recursive=True): print i
...
('/Users/trentm/src/redis/.gitignore', '\n', '\n')
('/Users/trentm/src/redis/BETATESTING.txt', '\n', '\n')
('/Users/trentm/src/redis/BUGS', '\n', '\n')
('/Users/trentm/src/redis/COPYING', '\n', '\n')
...**Convert files** to a given EOL-style:
>>> path = "/Users/trentm/src/python/Tools/msi/merge.py"
>>> eol.eol_info_from_path(path)
('\r\n', '\r\n')
>>> eol.convert_path_eol(path, "\n")
>>> eol.eol_info_from_path(path)
('\n', '\n')