A Cli tool for Grepsr Developers
Project description
A Cli tool for Grepsr Developers
Installation
$ pip install grepsr-cli
Usage
passing parameters to amazon_com service.
gcli crawler test -s amazon_com -p '{"urls":["https://amazon.com/VVUH4HJ","https://amazon.com/FV4434"]}'
if JSON is complex, use file instead
# contents of /tmp/amazon_params.json
{"urls": ["https://amazon.com/VV%20UH4HJ"], "strip": ["'", "\"", "\\"]}
gcli crawler test -s amazon_com --params-file '/tmp/amazon_params.json'
Hacks Used.
If the json parameter has a space, it might break parameter parsing. If the json parameter has a dash
-and any character after it has a space, it will break parameter parsing. Cause: no double quoting around $@ inrun_service.php:5:49here This is fixed hackily by replacing string with its unicode \u0020 sequence. This works beacause $@ does not split on \u0020.
inject custom command.
Say, for example you wanted to a inject a php function so that it could be called from inside you service_code when testing locally.
Note: All these files should only be created inside ~/.grepsr/tmp. Creating it outside will not work.
- Create a file called
inject.phpinside~/.grepsr/tmp/ - Implement your function inside
~/.grepsr/tmp/inject.php
function addRowLocal($arr) {
...
...
}
- Create a file called
inject.shinside~/.grepsr/tmp/ - inside inject.sh add:
alias php='php -d auto_prepend_file=/tmp/inject.php'
Note: the file location is /tmp/inject.php instead of ~/.grepsr/tmp/inject.php.
This is because, the local path ~/.grepsr/tmp gets mapped to /tmp in the docker container.
And inject.sh runs inside docker, instead of the local filesystem.
5. Add an entry in ~/.grepst/config.yml like so:
php:
...
sdk_image: ...
pre_entry_run_file: inject.sh # relative and limited to the tmp/ dir
- Now you can use
addRowLocal()in your any of your files.
public function main($params) {
...
$arr = $this->dataSet->getEmptyRow();
addRowLocal($arr); // won't throw error
...
}
Development
Be sure to uninstall gcli first, with
pip uninstall grepsr-cli
git clone git@bitbucket.org:zznixt07/gcli.git grepsrcli
cd grepsrcli
pip install -e .
Features Added
- drop stash after pushed successully. Before this, all stashes were always kept.
- run a custom shell file before running your crawler. This allows possiblity like always injecting a php function in all your crawlers.
- auto add
Dependencies: ...that your crawler class extends (dependecies that are not extended by crawler classes but used elsewhere is upcoming)
TODO:
- Experiment with git rebase on deploy fail.
git rebase origin/master --autostash && git push - Handle Prioritization of same plugin name across multiple repo more deterministically. (maybe prioritize cwd path?)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grepsr_cli-0.8.8.tar.gz.
File metadata
- Download URL: grepsr_cli-0.8.8.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bea0216c142115516c6a55566a2a9bbf54520bdac66947b50b77823843620f3
|
|
| MD5 |
81e6ba8e92edf121de2fa674f889c5ab
|
|
| BLAKE2b-256 |
2c3a80ddd59e918f20e26b8d7bcb85faeade5b3f38f5b5c109f8be908800b075
|
File details
Details for the file grepsr_cli-0.8.8-py3-none-any.whl.
File metadata
- Download URL: grepsr_cli-0.8.8-py3-none-any.whl
- Upload date:
- Size: 32.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
800eddc67a2ab0cedd85a2533b338e9b00929e391be143b02a2f0335022a1d35
|
|
| MD5 |
dbe9a42acb6d0d1ec12fc568dee8a92f
|
|
| BLAKE2b-256 |
e11573ab91d0c6d4ee4e419854e2244cb69cfdd3624048f6620d3fe7cd89e3c7
|