Skip to main content

A small command line library for daily tasks.

Project description

Installation

pip install -U cmdu

build

pip install -r requirements.txt
rm -rf dist
python -m build
python -m twine upload dist/* -u __token__ -p {token}

Commands

|-- cmdu
|   |-- file-mod
|   |   |-- hosts
|   |   |   |-- add
|   |   |   |-- delete
|   |   |   |-- delete-all
|   |
|   |-- check-list
|   |   |-- create
|   |   |-- check
|   |   |-- uncheck
|   |
|   |-- lnes
|   |   |-- set-nu
|   |   |-- count
|   |   |-- trim
|   |   |-- split
|   |   |-- skip
|   |   |-- filter
|   |   |-- filter-not
|   |
|   |-- convert
|   |   |-- j2j
|   |   |-- j2y
|   |   |-- y2j
|   |

file-mod hosts add

add a host to specific ip

# input
127.0.0.1 abc.com

python -m cmdu file-mod hosts add -ip 127.0.0.1 -host abcx.com

# output
127.0.0.1 abc.com abcx.com

file-mod hosts delete

delete a host from specific ip

# input
127.0.0.1 abc.com abcx.com

python -m cmdu file-mod hosts delete -ip 127.0.0.1 -host abcx.com

# output
127.0.0.1 abc.com

file-mod hosts delete-all

delete all hosts from specific ip

# input
127.0.0.1 abc.com
127.0.0.2 abcx.com

python -m cmdu file-mod hosts delete-all -ip 127.0.0.2

# output
127.0.0.2 abcx.com

check-list create

create line by line record to check list

# input
line 1
line 2

line 3

python -m cmdu check-list create

# output
[ ] 000001 |line 1
[ ] 000002 |line 2

[ ] 000003 |line 3

check-list load

load check list from different format (simple, json, yaml) into other format (simple, json, yaml)

# input
[ ] 000001 |line 1
[x] 000002 |line 2

[X] 000003 |line 3

python -m cmdu check-list --simple-in --yaml-out

# out
- checked: false
  id: '000001'
  line: item 1
- checked: true
  id: '000002'
  line: item 2
- checked: true
  id: '000003'
  line: item 3

check-lst check

check the item by number

# input
[ ] 000001 |line 1
[ ] 000002 |line 2

[ ] 000003 |line 3

python -m cmdu check-list check 2 3

# out
[ ] 000001 |line 1
[X] 000002 |line 2

[X] 000003 |line 3

check-lst uncheck

uncheck the item by number

# input
[ ] 000001 |line 1
[x] 000002 |line 2

[X] 000003 |line 3

python -m cmdu check-list check 1 2 3

# out
[ ] 000001 |line 1
[ ] 000002 |line 2

[ ] 000003 |line 3

lines set-nu

set line number to each line, pad 000000 | to the left

  1. python -m cmdu lines set-nu
    # input
    line 1
    line 2
    
    # output
    000001 |line 1
    000002 |line 2
    

lines count

Count the number of lines

  1. python -m cmdu lines count
    # input
    line 1
    line 2
    
    # output
    2
    

lines trim

Trim the line by delimiter

  1. Trim right
    # input
    xline 1x
    bline 2b
    xline 3x
    
    python -m cmdu lines trim --right -c x
    
    # output
    xline 1
    bline 2b
    xline 3
    
  2. Trim left
    # input
    xline 1x
    bline 2b
    xline 3x
    
    python -m cmdu lines trim --left -c x
    
    # output
    line 1x
    bline 2b
    line 3x
    
  3. Trim both side
# input
xline 1x
bline 2b
xline 3x

python -m cmdu lines trim --both -c x

# output
line 1
bline 2b
line 3

lines split

Split the line by delimiter

# input
a, b, c

python -m cmdu lines split --d ","

# output
a
b
c

lines skip

Skip the first n lines

  1. python -m cmdu lines skip 2
    # input
    line 1
    line 2
    line 3
    
    # output
    line 3
    

lines filter

Filter any match line

  1. filter by regex, any matching in regex will make the whole line accepted
    # input
    line 1
    line 2
    line 3
    
    python -m cmdu filter --regex "^line 1$"
    
    # output
    line 1
    

lines filter not

Filter any not match line

  1. filter by regex, any matching in regex will make the whole line rejected
    # input
    line 1
    line 2
    line 3
    
    python -m cmdu filter-not --regex "^line 1$"
    
    # output
    line 2
    line 3
    

convert j2j

convert a json input (from stdin) as json output (to stdout)

  1. with raw json(no indentation and new line) python -m cmdu json2json
    # input
    {"a": 1, "b": 2}
    
    python-m cmdu json2json
    
    # output
    {"a": 1, "b": 2}
    
  2. with pretty format python -m cmdu json2json --pretty
    # input
    {"a": 1, "b": 2}
    
    python-m cmdu json2json --pretty
    
     # output
     {
         "a": 1,
         "b": 2
     }
    
  3. with pretty format and indentation as 2 python -m cmdu json2json --pretty --indent 2
    # input
    {"a": 1, "b": 2}
    
    python-m cmdu json2json --pretty --indent 2
    
    # output
    {
      "a": 1,
      "b": 2
    }
    

convert j2y

convert a json input (from stdin) as yaml output (to stdout)

  1. with json as yaml
    # input
    {"a": 1, "b": 2}
    
    python-m cmdu j2y
    
    # output
    a: 1
    b: 2
    

convert y2j

convert a yaml input (from stdin) as json output (to stdout)

  1. with raw json
    # input
    a: 1
    b: 2
    
    python-m cmdu y2j
    
    # output
    {"a": 1, "b": 2}
    
  2. with pretty format python -m cmdu yaml2json --pretty
    # input
    a: 1
    b: 2
    
    python -m cmdu yaml2json --pretty
    
    # output
    {
         "a": 1,
         "b": 2
    }
    
  3. with pretty format and indentation as 2 python -m cmdu yaml2json --pretty --indent 2
    # input
    a: 1
    b: 2
    
    python -m cmdu yaml2json --pretty --indent 2
    
    # output
    {
       "a": 1,
       "b": 2
    }
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmdu-0.0.15.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

cmdu-0.0.15-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file cmdu-0.0.15.tar.gz.

File metadata

  • Download URL: cmdu-0.0.15.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for cmdu-0.0.15.tar.gz
Algorithm Hash digest
SHA256 dde4c50d003308e4e2880c1ee263281f58d7f8fdd5bb528cbbf45e9bb8a63561
MD5 510c1342a026b16a0ef6e9c6c02746af
BLAKE2b-256 46e972ee9106adce01b586f01e40cac39a42c05c3231112f70e19810ddb11c14

See more details on using hashes here.

File details

Details for the file cmdu-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: cmdu-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for cmdu-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 d274c631488dcf4028ba94350bfc3d04ae922f3a76f5ceeb9d1869eab248c82d
MD5 9e049fc98a6790d9862ae4b5482e44dd
BLAKE2b-256 5d2f737fb96278d31fb7f5ca88612ae13f620d7ebf2101ab1cecbf2a73b7eaf9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page