Git Product home page Git Product logo

chromaterm's People

Contributors

enf0 avatar houseman303 avatar hsaria avatar scheatkode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chromaterm's Issues

Write spec file

While installation straight from source using make install is sufficient, having an RPM for repo's would be nice to have and more convenient if available.

The spec file doesn't have to be perfect, but just functional for the time being. Once v0.4.0 is released, the spec file may require some changes.

Bold text style matches everything?

Description

When using the "bold" it matches everything after the initial match, while the color configured on the same rule is displaying correctly. The bold style continues until the session is closed. ct --reload does not help either.

Screenshot from 2019-10-09 11-33-33

Environment

  • OS: Ubuntu 19.04
  • ChromaTerm: 0.4.8

Configuration

  regex: (?:[0-9]*[1-9][0-9]*\W|^)((input errors|errors|error|err|reset|act\/unsup|dhcp|DHCP|mismatch|notconnect|drops|dropped|runts|CRC|collisions|collision|LRN|learning
|listening|LIS|unsynchronized))(?=[\W\s]|$)
  color: f#c94b4b bold

Missing files in sdist

It appears that the manifest is missing at least one file necessary to build
from the sdist for version 0.6.1. You're in good company, about 5% of other
projects updated in the last year are also missing files.

+ /tmp/venv/bin/pip3 wheel --no-binary chromaterm -w /tmp/ext chromaterm==0.6.1
Looking in indexes: http://10.10.0.139:9191/root/pypi/+simple/
Collecting chromaterm==0.6.1
  Downloading http://10.10.0.139:9191/root/pypi/%2Bf/5f6/73fa7e52370a7/chromaterm-0.6.1.tar.gz (16 kB)
    ERROR: Command errored out with exit status 1:
     command: /tmp/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-4_uajokl/chromaterm/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-4_uajokl/chromaterm/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-wheel-4_uajokl/chromaterm/pip-egg-info
         cwd: /tmp/pip-wheel-4_uajokl/chromaterm/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-wheel-4_uajokl/chromaterm/setup.py", line 12, in <module>
        with open('.github/README.md', 'r') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '.github/README.md'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Existing colors in the input are not overridden

Environment

  • OS:
  • Terminal:
  • ChromaTerm:

Hello Expert,

Chromaterm Script is not functioning properly. Today i installed cleaned chromaterm and trigger not working properly and it matches partial keywords. This is applicable for SSH/Telnet and local log files.

image

Check this IP is not fully matching and same for port and many other keywords. I thought my old config has problem so installed cleaned to test it and found it's script bug. If this could be fix would be good but don't know how much it's doable

-Praveen

Standardized configuration format

The current method for storing highlight rules has an arbitrary format that's a remanent of the original ChromaTerm. There's already a bug if someone attempts to use { or } as part of word match in their RegEx, but no one to my knowledge has run into it.

It would be better to use a well-known library/format to parse the configuration. I'm thinking of YAML, but that's not set in stone.

Prompt not correctly displayed

Describe the bug
I noticed the switch to PCRE2 and wanted to try out the performance increase that comes with it. But sadly it doesn't work correctly. My prompt doesn't completely appear and when logged in to routers using tab completion causes it to eat the last character of the word.

The ct binary I build around 2 weeks ago doesn't have this issue. It was build somewhere after changing to PCRE, help displays v0.05

Screenshots
This happens if I open CT and just press enter a few times:

[me@v-server ~]$ ./git/ChromaTerm--/src/ct
[me@v-server ~]$
[me@v-server ~
[me@v-server ~

Environment (please complete the following information):

  • OS: centos 7
  • Version 7.5.1804 (Core)

Additional context
I tried to check if this bug is still present in the development branch but there seem to be some major changes in how CT-- is used there. I couldn't get CT-- working |(prompt was displayed but any command used doesn't display output) but your'e probably still working on that.

Change from PCRE to POSIX RE

Hi,

Sorry if this is not the place to ask but I have a question.

I'm interested in this fork as I only use the highlighting feature of Chromaterm and this fork promises a major performance increase. I was just wondering why the REGEX library was changed from PCRE to POSIX? Does this have a huge impact on performance? In the POSIX library I miss features like readahead, lookback and word boundaries.

I say this as a user of the following configuration (not made by me): https://gist.github.com/vista-/7882bc223e3bb209664103fd4736ab7f

BlockingIOError with telnet

Environment

  • OS: BigSur 11.5.1
  • Terminal: Hyperterm nightly
  • ChromaTerm: <0.7.0>

Description

Hi Team ,

I was working on one my router and left the device and telnet session open for few hour then i have seen this message on router telnet session and session freezed. first i thought virtual router has some issue then noticed the it's chromaterm script.

image

Codec issue

Codec Issue

So, as suggested I used ssh | ct. On my remote server I was running weather report curl wttr.in but by default, it would pipe through ct.
I got this error. Any suggestion ?

  File "/usr/local/bin/ct", line 11, in <module>
    sys.exit(chromaterm.main(chromaterm.config_init()))
  File "/usr/local/lib/python3.7/dist-packages/chromaterm/__init__.py", line 507, in main
    buffer += data.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data

BlockingIOError Still Seen in v0.10.7

ChromaTerm version

ct 0.10.7

Terminal

iTerm 2

What's happening?

Seem like the commit for issue #93 either got backed out or wasn't properly committed. I am seeing the same BlockingIOError on pretty much any telnet session to any Cisco router on a corporate network due to the fact that the output obviously isn't immediate but rather delayed by a couple hundred milliseconds.

I manually imported the patched "__main__.py" from the commit listed at the end of that bug and it seems to work fine. If telnet is slow, it adds an extremely minor delay in output so outputs can be color formatted properly. When running commands locally on my own computer, the output is immediate. I think the fix is working properly, so can it be committed to the main branch?

Prompt isn't visible immediately when using `tmux`

ChromaTerm version

v0.9.2

Terminal

iTerm2

What's happening?

Originally posted by @ciscohack in #96 (comment)

When using tmux, the prompt takes longer to become visible again. Below is a demonstration. When using ct zsh, it is responsive, but when using ct tmux, the prompt takes a bit of time to respond.

Screen.Recording.2022-01-14.at.14.44.25.mov

This was tested with a default configuration file.

Inconsistent highlighting of single letters

Easier to explain with a screenshot:
image

It seems that the highlight rules for RIP, EIGRP, BGP and OSPF matches the single letters in the Cisco CLI prompt, even though it shouldn't match if these letters are part of a word, i.e. not standalone?

Is this a bug, or is this supposed to happen given the regex below?

- description: BGP Part 2
  regex: \b(%(BGP|BGP_SESSION)\-\d\-\w+|bgp|BGP|B|IGP|incomplete|\d{2,7}\/nolabel\(\w+\)|RR\-client|Originator|cluster\-id|Cluster\-id|Cluster|Route\-Reflector)\b
  color: f#AF7AC5

- description: OSPFv2 and OSPFv3
  regex: \b(OSPF_VL\d{1,2}|OSPF_SL\d{1,2}|VL\d{1,2}|SL\d{1,2}|Type\-\d|ospf|OSPF|O|IA|E[12]|N[12]|P2P|P2MP|BDR|DR|ABR|ASBR|LOOP|DROTHER|POINT_TO_POINT|POINT_TO_MULTIPOINT|BROADCAST|NON_BROADCAST|LOOPBACK|SHAM_LINK|3101|1587|transit|Transit|nssa|NSSA|stub|Stub|Superbackbone|OSPFv3_VL\d{1,2}|OSPFv3\-\d{1,5}\-IPv6|ospfv3|OSPFv3|OI|OE[12]|ON[12]|V6\-Bit|E\-Bit|R\-bit|DC\-Bit|opaque|DROTH|%OSPF(V3)?\-\d\-\w+)\b
  color: f#ffa500

- description: EIGRP
  regex: \b(EIGRP\-IPv6|EIGRP\-IPv4|eigrp|EIGRP|EX|D|K[13]=1|K[245]=0|Internal|External|%DUAL\-\d\-\w+)\b
  color: f#008080

- description: RIP
  regex: \b((rip|RIP|R))\b
  color: f#ff0000

psutil not supported in Cygwin

PSUtils not supported in Cygwin

[~]$ pip3 install chromaterm
Collecting chromaterm
  Using cached chromaterm-0.6.3-py3-none-any.whl (17 kB)
Collecting psutil; sys_platform != "win32"
  Using cached psutil-5.7.2.tar.gz (460 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ev3folk5/psutil/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ev3folk5/psutil/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-i0bk4d6b
         cwd: /tmp/pip-install-ev3folk5/psutil/
    Complete output (1 lines):
    platform cygwin is not supported
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Is there a way around this?

Overlapping colors

Hello!
I want to colorize the output of show interfaces description command in Cisco IOS in such a manner:

  1. Colorize admin down down (three words) to yellow. I want to do it only for interfaces which are down by admin.
  2. Colorize down down (two words) to red. I want to do it only for interfaces which are not down by admin.
    I did some image editing for your better understanding what I want: https://imgur.com/6PIjLkY

I have the following config:

rules:
- description: down
  regex: down
  color: f#ff0000

- description: admin down
  regex: (?i)(admin down\s+down)
  color: f#f7e08b

Please see what I'm getting with my config: https://imgur.com/EE3KNUk
I understand that there is overlapping since presence of the word down in both cases. In the versions prior to 0.4 I've successfully done it via priorities. So, how can I get what I want in the version 0.4 ?
Thanks!

Plans to expand functionality?

Are there any plans to further expand on this tool?

I'd love to be able to highlight different parts of a match differently.

Example use case:
192.168.1.0/24

<0f0>192.168.1.0<555>/24

IE: IP in green, / in dark grey, CIDR in lighter grey

Piping from less into ChromatTerm does not keep less open interactively

Description

A command of the structure less file.log | ct correctly opens the desired file in less and colorizes it.
The less program is however not interactive, scrolls through the entire log file and then closes itself.
What do I have to do to keep the less program interactive when piping from less into ct?
I have looked over the man page for less but could not find a flag to force interactive mode or something similar.

Environment

  • Terminal: zsh in tmux on wsltty
  • OS: [Ubuntu 18.04.3 LTS @ WSL @ Win10 1803 build 17134.1039]
  • ChromaTerm: [0.5.1]

Configuration

This happens with the default configuration

Command prompt highlighting does not work

Hello everybody :)

Description

I have a similar issue as #81 but for me it's not colouring at all.

The regex is ^([^$#(]+)(\$|#|\([^)]+\)#)

The output is to basically color the command prompt
[root@dev ~]$

But when I add the regex to the yml file, respecting the indentation is not working at all

- description: User highlight
  regex: ^([^$#(]+)(\$|#|\([^)]+\)#)
  color: f#ffffff

I have no errors when using CT like ssh 1.1.1.1 | ct but still no colouring the prompt.

I also have version 0.3.4 on my Mac installed via brew and it's working just fine the regex using the old syntax in .chromatermrc

HIGHLIGHT {^([^$#(]+)(\$|#|\([^)]+\)#)} {bold white}

What I might be doing wrong that new regex are not working? because the file is being parsed, when I purposely make a mistake in the syntax, it automatically indicates me when using CT.

The issue I have it in both the server with CentOS 7 and in macOS Catalina

Environment

  • OS: [macOS 10.15.2] Catalina
  • OS: [CentOS Linux release 7.6.1810 (Core)]
  • ChromaTerm: [0.5.8 (pip3 show chromaterm)]

[root@dev ~]$ pip3 show chromaterm
Name: chromaterm
Version: 0.5.8
Summary: Colorize your output using RegEx
Home-page: https://github.com/hSaria/ChromaTerm
Author: hSaria
Author-email: [email protected]
License: MIT
Location: /usr/local/lib/python3.6/site-packages
Requires: psutil, PyYAML

Configuration

[root@dev ~]$ cat .chromaterm.yml
rules:
- description: IPv4
  regex: \b(?<!\.)((25[0-5]|(2[0-4]|[0-1]?\d)?\d)\.){3}(25[0-5]|(2[0-4]|[0-1]?\d)?\d)(/\d+)?(?!\.)\b
  color: f#00ffff

- description: IPv6 (boundaries don't work here as they can be in the start or end of the match, so using lookaheads and lookbehinds instead)
  regex: (?i)((?<=[\W])|^)(?<!:)(([\da-f]{1,4}:){7}[\da-f]{1,4}|([\da-f]{1,4}:){1,1}(:[\da-f]{1,4}){1,6}|([\da-f]{1,4}:){1,2}(:[\da-f]{1,4}){1,5}|([\da-f]{1,4}:){1,3}(:[\da-f]{1,4}){1,4}|([\da-f]{1,4}:){1,4}(:[\da-f]{1,4}){1,3}|([\da-f]{1,4}:){1,5}(:[\da-f]{1,4}){1,2}|([\da-f]{1,4}:){1,6}(:[\da-f]{1,4})|([\da-f]{1,4}:){1,7}:|:((:[\da-f]{1,4}){1,7}|:)|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|[0-1]?\d)?\d)\.){3}(25[0-5]|(2[0-4]|[0-1]?\d)?\d)|([\da-f]{1,4}:){1,4}:((25[0-5]|(2[0-4]|[0-1]?\d)?\d)\.){3}(25[0-5]|(2[0-4]|[0-1]?\d)?\d))(%[\da-z]+)?(/\d+)?(?!:)((?=[\W])|$)
  color: f#ff00ff

- description: MAC addresses
  regex: (?i)\b((?<!:)([\da-f]{1,2}:){5}[\da-f]{1,2}(?!:)|(?<!\.)([\da-f]{4}\.){2}[\da-f]{4}(?!\.))\b
  color: f#5f61ad

- description: Date in YYYY-MM-DD, YY-MM-DD, MMM (YYYY|DD), or DD MMM (YYYY)? formats
  regex: (?i)((?<=[\W])|^)((\d{2}|\d{4})\-((0)?[1-9]|1[0-2])\-(3[0-1]|([1-2]\d)|(0)?[1-9])|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s(\d{4}|\s\d|(3[0-1]|([0-2]\d)))|((\d|(3[0-1]|([0-2]\d)))\s(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(\s\d{4})?))((?=[\WT_])|$)
  color: b#af5f00

- description: Time in hh:mm:ss.SSSSSS format (sec, msec, and nsec optional)
  regex: \b((?<!:)((2[0-3])|[0-1]\d):[0-5]\d(:[0-5]\d)?((\.|,)\d{3,6})?(?!:))\b
  color: b#af5f00

- description: Generics - Bad
  regex: (?i)\b(password|abnormal(ly)?|down|los(t|s|ing)|err(or(s)?)?|(den(y|ies|ied)?)|reject(ing|ed)?|drop(ped|s)?|(err\-)?disable(d)?|(time(d)?(\-)?out)|fail(s|ed|iure)?|disconnect(ed)?|unreachable|invalid|bad|notconnect|unusable|block(ing|ed)?|blk|inaccessible|wrong|collision(s)?|unsynchronized|mismatch|runts|CRC)\b
  color: f#ff0000

- description: Generics - Ambigious bad
  regex: (?i)\b(no(t|pe)?|exit(ed)?|reset((t)?ing)?|discard(ed|ing)?|filter(ed)?|stop(p(ed|ing))?|never|can((')?t|not))\b
  color: f#865e12

- description: Generics - Not too bad
  regex: (?i)\b(warning(s)?)\b
  color: f#ffff00

- description: Generics - Ambigious good
  regex: (?i)\b(ye(s|a(h)?|p)?|started|running|can)\b
  color: f#085e0b

- description: Generics - Good
  regex: (?i)\b(up|ok(ay)?|permit(ed|s)?|accept(s|ed)?|enable(d)?|online|succe((ss(ful|fully)?)|ed(ed)?)?|connect(ed)?|reachable|valid|forwarding|synchronized)\b
  color: f#00ff00

- description: User highlight
  regex: ^([^$#(]+)(\$|#|\([^)]+\)#)
  color: f#ffffff

ChromaTerm installation error on macOS BigSur

Environment

  • OS:macOS Big Sur 11.4
  • Terminal:Iterm2 Nightly
  • ChromaTerm:

Description

Hi Team,

I am trying to install Chromaterm and getting following error on my macOS BigSur 11.4 while running pip3 install. Please help me to fix this problem and i request you to please add more keywords for color highlight

log:--

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', IsADirectoryError(21, 'Is a directory'))': /simple/chromaterm/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', IsADirectoryError(21, 'Is a directory'))': /simple/chromaterm/
pip3 install chromaterm-error.txt

Not working with PIP install

Description

When installing with PIP I was unable to use 'ct' from the command line. Attempts to use it resulted in a command not found error.
Not sure if the PATH wasn't updated or where it went wrong.

Using cloning the git Repo and using CT from it works fine.

Environment

  • OS: Pop!_OS 19.10
  • ChromaTerm: Current as of 11/4/19

Configuration

Default CT config

##Other
Running CT this way is fine with me. (git clone vs PIP) Just wanted to let you know that I had this issue installing with PIP since it is the suggested install method.
Love the project!

Terminal Title Bar

What's on your mind?

First off, I love the tool.

I was curious to know if there's a way I can get my title bar to show the remote machine in the title bar. It works without the ct when I ssh to my remote machine, but with ct, i get "ct" in my title bar rather than the user@hostname.

Thanks,

Substitutions

As long as the scope of ChromaTerm-- doesn't extend too far beyond the original scope, I am happy to add substitutions as a possible action.

This feature request is currently just a place holder for the time being. It won't be a part of v0.4.0, but perhaps a v0.5.0 shortly after will include it.

Master does not handle spaces very well

Describe the bug
Master does not handle spaces very well

Environment
Centos 7

Configuration File

HIGHLIGHT {\b(flag \[S\]),} {tan} {2}

Additional context
Using a space in a regex does not work, the following error is looped:
'''
ERROR: Highlight rule not found
'''
This is fixed by using \s instead of . This might be intentional but the error looping is not really nice behaviour.

ct: command not found

how to install and use ?

Description

after pip3 install chromaterm ,
then excute 「echo "Jul 14 12:28:19 Message from 1.2.3.4: Completed successfully" | ct 」

error message :
command not found: ct

Environment

environment : Ubuntu 18.04

ChromTerm showing random characters on the console

ChromaTerm version

v0.9.0

Terminal

iterm2 and hyperterm

What's happening?

Hello Expert,

I have open a terminal (iterm2/hyperterm) for ssh and telnet and saw some random character appear and disappear automatically after some time. some time also see P=2s value on console and when this value appear console will not allow to do anything for small period of time.

I am using oh-my-tmux and zsh4humans as default config .

here is the link for tmux just install and use. no change and here is my zsh shell link

https://github.com/romkatv/zsh4humans/blob/v5/README.md

https://github.com/gpakosz/.tmux

image

ct bash: make ct follow pwd of bash?

Hello,

First of all, thanks for this tool, this is really great and very easy to customize!

Just a small enhancement request in case you find this useful: certain terms such as Konsole from KDE seem to use the current pwd of the running app (bash/etc) to spawn another tab on the same pwd. I found it useful to do "ct bash" instead of bash to have colors but since ct doesn't follow bash's pwd, Konsole doesn't see the right pwd.

One way to fix that would be to periodically perform a chdir on the current pwd of the running process? To get it, one way could be to check /proc/child pid/cwd, but there might be better ways.

Don't know if this makes much sense, I can attempt to be more precise, but that would be helpful!

Thanks,
Louis

Color Tracking

As opposed to always inserting a color-reset after every color, insert the last-known color.

Scrolling up does not apply all Regexes

Description

  1. ssh some-server | ct
  2. open log file with less on remote server
  3. find some colorized lines
  4. scroll down until the lines are out of view
  5. scroll back up
  6. Only some regexes are applied again

Scrolling down seems to always apply all regexes correctly while scrolling up fails to apply some of the more complicated ones..
It appears that the regexes applied when scrolling up are only the most simple ones.

Environment

  • Terminal: zsh in tmux on wsltty
  • OS: [Ubuntu 18.04.3 LTS @ WSL @ Win10 1803 build 17134.1039]
  • ChromaTerm: [0.5.1]

Configuration

This happens with the default configuration.
One pattern I observed not to be reapplied when scrolling up in the remote logs is the date Pattern in the format YYYY-MM-DD.
The time pattern was correctly reapplied when scrolling up though.

RGB Support

Following the change in format (#58) and as requested in #61, support for RGB is feasible.

While the terminal support for RGB colors is rare, providing an argument or a config option to enable it wouldn't be too much of a hassle to the user.

Even if there's a valid way to detecting RGB support, I'd like to the user manually enable it.

Certain regex pattern gives strange output

The regex pattern in question:
^([^$#(]+)(\$|#|\([^)]+\)#)

Expected output:
xxUser123@server-001:~$
Actual output:
0;xxUser123@server-001: ~xxUser123@server-001:~$

Any idea why this is happening? Is there something wrong with the regex, or could it be a bug with Chromaterm?

Rules to disable highlighting and prevent duplicate matches

Description

The old Chromaterm would stop processing an item once there was a match. The new Chromaterm seems to keep processing, and if something matches twice will apply both. Is there an option to disable this per rule or globally?

Also, perhaps if there was a way to do this coupled with a rule to apply no color or just ignore a pattern.

Use case:
I like the default rule that makes hh:mm:ss.SSSSSS time yellow, however I would only like it to take effect when there isn't a days/weeks number in front of the time. For instance: 54w0d 8:19:31

I was trying to write a rule that would match with the days/weeks and either have no formatting (ignore) or apply a different color, but no matter what I do it still applies the yellow color to the time.

Environment

  • OS: Linux Debian Buster
  • ChromaTerm: 0.5.3

Configuration

  • description: Time in hh:mm.ss.SSSSSS format with days in front of it
    regex: ((\d{1,2}w\d{0,2}d |\d{0,2}d )(([0-9])|(2[0-3])|[0-1]\d):[0-5]\d(:[0-5]\d)?((.|,)\d{3,6})?(?!:))
    color: f#00ffff

  • description: Time in hh:mm:ss.SSSSSS format (sec, msec, and nsec optional)
    regex: \b((?<!:)(([0-9])|(2[0-3])|[0-1]\d):[0-5]\d(:[0-5]\d)?((.|,)\d{3,6})?(?!:))\b
    color: f#ffff00

Permit the use capturing groups

Originally, this feature was there, but I removed it in favor of keeping things simple and the fact that positive/negative lookbehinds/lookaheads were able to somewhat achieve this functionality, albeit with some limitation from the RegEx engine (e.g. lookbehinds in PCRE couldn't use quantifiers).

It would be more flexible and not too complex to give access to the groups as part of the action(s).

This is dependent on #58 as the configuration needs to be more intuitive, especially now that there are a couple of features queued up.

ct -a (per pattern)

I can understand the need to have colliding patterns off by default, I can see a number of cases where colliding patterns would be preferred.

For example, basic types such as IP Addresses, [WARNING|ERROR], date-time strings for which you would always want them to highlight at a lower priority, but not block other more specific lines from being colored.

Example (just the output string):
<999>Your machine has been assigned <0f0>192.168.42.37<999> and is now available.

Where the IP address would match:

  1. HIGHLIGHT {\d+.\d+.\d+.\d+} {<0f0>} {50}
  2. HIGHLIGHT {^Your machine has been assigned.+$} {<999>} {1000}

Somehow be able to mark Item 1 as "continue on match", perhaps priority of {50+} or something.

Unable to run

I just downloaded the source from Github and compiled the source; launching
./ct
I receive the error
sh: 1: exec: session: not found

My environment is Ubuntu 18.04

I'm putting the out of ./configure to better identify the issue:

./configure

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether make sets $(MAKE)... yes
checking for library containing forkpty... -lutil
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking pty.h usability... yes
checking pty.h presence... yes
checking for pty.h... yes
checking util.h usability... no
checking util.h presence... no
checking for util.h... no
checking for library containing pcre2_compile_8... -lpcre2-8
checking for pcre2.h... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged

Delay in trigger highlight

ChromaTerm version

v0.10.3

Terminal

Alacritty

What's happening?

Hi hSaria,

I have upgraded to the latest CT code and observed a delay in trigger, especially with the telnet/ssh session and normal log will test later

image

Syntax Error in Line 2 ~/.chrometermrc

Syntax Error in Line 2 ~/.chrometermrc

There is Syntax Error in Line 2 ~/.chrometermrc when I tried to source it.

$ source ~/.chromatermrc 
-bash: /bin: Is a directory
-bash: /home/server/.chromatermrc: line 2: syntax error near unexpected token `('
-bash: /home/server/.chromatermrc: line 2: `HIGHLIGHT {(?i)(?<=[\W]|^)(?<!\.)(?:(?P<ip>25[0-5]|(?:2[0-4]|[0-1]?\d)?\d)\.){3}(?P>ip)(?:/\d*)?(?!\.)(?=[\W]|$)} {cyan} {1000}'

Environment

  • OS: Ubuntu 19.04 Server
  • ChromaTerm-- version:
$ ct --version
ct: invalid option -- '-'
ChromaTerm-- v0.3.0

Configuration File

Issue on:
HIGHLIGHT {(?i)(?<=[\W]|^)(?<!\.)(?:(?P<ip>25[0-5]|(?:2[0-4]|[0-1]?\d)?\d)\.){3}(?P>ip)(?:/\d*)?(?!\.)(?=[\W]|$)} {cyan} {1000}

CT rendering issue with Kitty terminal

ChromaTerm version

v0.10.1

Terminal

Kitty terminal

What's happening?

Hello Expert,

I am trying to run CT in kitty terminal i used following configuration in kitty.conf file "shell /usr/local/bin/ct zsh --login" after putting this config terminal wide CT starts but since i use terminal window in tmux rendering got messed up. Can you please help to fix it. See below screenshot it's rendering wrong format

image

ideally it should show like this

image

Full 24-bit color...

I'm not sure if this was intended, but if I try to use as the color code, it just puts that code in front of the result. Like 0-9 can't be used for 24-bit color codes.

Is that intended? Could that be changed?

I love the idea that upper case characters indicate background and there is no upper/lower to digits so I could see that being a problem.

Perhaps an extended form would work, like use for the VT100 stuff and [012] for 24 bit color. Could even do something like [f00.000] where the first 3 characters before the optional period are the foreground and the last 3 after the period for background, if present.

Other examples that I would think would work like this:
[.000] - Black background
[f00] - Red foreground
[f00.] - Red foreground
[F00] - Red Background

One other alternate that might make sense (piggyback off css)
#f00000 - Red foreground / black background
#00fFFF - Blue foreground / White background

Thoughts?

.chromatermrc not being parsed

I cannot get Cisco highlighting to work. It seems that ChromaTerm is colorizing/highlighting my output based on the rules in .chromaterm.yml, but not the regex rules in .chromatermrc.

Is there something I am not understanding? What is the difference between these two files?

image

xxx@hostname  ~  ls -l /home/xxx/.chromaterm*
-rw-rw-rw- 1 xxx xxx 2547 Jan 29 09:40 /home/xxx/.chromaterm.yml
-rw-rw-rw- 1 xxx xxx 10667 Jan 29 12:57 /home/xxx/.chromatermrc

I'm using the .chromatermrc from here.

Capability to reload the config

There was the -r option in the version 0.3.4.

./ct -h   
ChromaTerm-- v0.3.4
Usage: ./ct [-adr] [-c file]
     -a       Allow colliding actions
     -c file  Override configuration file
     -d       Demo the available custom color-codes
     -r       Reload the config file for all CT instances

It was very helpful and it would be nice if you could implement such a mechanism for recent version (0.4.x).

Broken display of htop

Environment

  • OS: macOS Catalina Version 10.15.3
  • Terminal: iTerm2 Build 3.3.10beta4
  • ChromaTerm: 0.6.1

You canse in the images below, the output for top and top are broken and unreadable.

Screen Shot 2020-05-17 at 1 13 29 AM

Screen Shot 2020-05-17 at 1 18 25 AM

The configuration file in attached as well.

chromaterm.txt

Maybe this is normal due to my regex, but I'm not certain.

Thank you in advance and best regards,

CD

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.