|
| 1 | +<h1 align="center">FileQL - File Query Language</h1></br> |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | +<img src="media/fql_logo.svg" width="20%" height="20%"/> |
| 5 | +</p> |
| 6 | + |
| 7 | +<p align="center"> |
| 8 | + <img alt="Crates.io" src="https://img.shields.io/crates/v/fileql?style=flat-square"> |
| 9 | + <img alt="Deps" src="https://deps.rs/repo/github/amrdeveloper/fileql/status.svg"> |
| 10 | + <img alt="Release" src="https://github.com/AmrDeveloper/fileql/actions/workflows/release.yaml/badge.svg"> |
| 11 | + <img alt="GitHub release" src="https://img.shields.io/github/v/release/amrdeveloper/fileql"> |
| 12 | + <img alt="GitHub issues" src="https://img.shields.io/github/issues/amrdeveloper/fileql"> |
| 13 | + <img alt="GitHub" src="https://img.shields.io/github/license/amrdeveloper/fileql"> |
| 14 | + <img alt="GitHub all releases" src="https://img.shields.io/github/downloads/amrdeveloper/fileql/total"> |
| 15 | +</p> |
| 16 | + |
| 17 | +<p align="center"> |
| 18 | +FileQL is a tool that allow you to run SQL-like query on local files instead of database files using the GitQL SDK. |
| 19 | +</p> |
| 20 | + |
| 21 | +<p align="center"> |
| 22 | + <img src="media/fql_demo.gif" alt="animated" width="100%"/> |
| 23 | +</p> |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +### Samples |
| 28 | + |
| 29 | +Note that all Keywords in FileQL are case-insensitive, similar to SQL. |
| 30 | + |
| 31 | +```sql |
| 32 | +SELECT 1 |
| 33 | +SELECT 1 + 2 |
| 34 | +SELECT LEN("File Query Language") |
| 35 | +SELECT "One" IN ("One", "Two", "Three") |
| 36 | +SELECT "File Query Language" LIKE "%Query%" |
| 37 | + |
| 38 | +SELECT * FROM files |
| 39 | +SELECT COUNT(path) from files |
| 40 | +SELECT DISTINCT parent AS folders FROM files |
| 41 | +``` |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +### Files table structure |
| 46 | + |
| 47 | +| Name | Type | Description | |
| 48 | +| --------- | ------- | --------------------- | |
| 49 | +| path | Text | File path | |
| 50 | +| parent | Text | File parent path | |
| 51 | +| extension | Text | Extension of the file | |
| 52 | +| size | Integer | Size of the file | |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +### Download or Install |
| 57 | + |
| 58 | +- Install from Cargo.io |
| 59 | + |
| 60 | +``` |
| 61 | +cargo install fileql |
| 62 | +``` |
| 63 | + |
| 64 | +- Build from source code |
| 65 | + |
| 66 | +``` |
| 67 | +git clone https://github.com/AmrDeveloper/fileql.git |
| 68 | +cd fileql |
| 69 | +cargo build |
| 70 | +``` |
| 71 | + |
| 72 | +### Run FileQL |
| 73 | + |
| 74 | +``` |
| 75 | +FileQL is a SQL like query language to run on local files |
| 76 | +Usage: FileQL [OPTIONS] |
| 77 | +
|
| 78 | +Options: |
| 79 | + -f, --files <paths> Path for local files to run query on |
| 80 | + -e, --excludes <paths> Path for local files to exclude from query scope |
| 81 | + -q, --query <GQL Query> FileQL query to run on selected files |
| 82 | + -p, --pagination Enable print result with pagination |
| 83 | + -ps, --pagesize Set pagination page size [default: 10] |
| 84 | + -o, --output Set output format [render, json, csv] |
| 85 | + -a, --analysis Print Query analysis |
| 86 | + -h, --help Print FileQL help |
| 87 | + -v, --version Print FileQL Current Version |
| 88 | +``` |
| 89 | + |
| 90 | +### License |
| 91 | +``` |
| 92 | +MIT License |
| 93 | +
|
| 94 | +Copyright (c) 2024 Amr Hesham |
| 95 | +
|
| 96 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 97 | +of this software and associated documentation files (the "Software"), to deal |
| 98 | +in the Software without restriction, including without limitation the rights |
| 99 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| 100 | +copies of the Software, and to permit persons to whom the Software is |
| 101 | +furnished to do so, subject to the following conditions: |
| 102 | +
|
| 103 | +The above copyright notice and this permission notice shall be included in all |
| 104 | +copies or substantial portions of the Software. |
| 105 | +
|
| 106 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 107 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 108 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 109 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 110 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 111 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 112 | +SOFTWARE. |
| 113 | +``` |
0 commit comments