Update readme file

This commit is contained in:
novak_i
2020-03-01 15:04:47 -05:00
parent 8de651de09
commit 4cfe71bee3
3 changed files with 130 additions and 22 deletions
+41 -3
View File
@@ -40,8 +40,39 @@ optional arguments:
_Note:_ `--position` - 0 0 is on the top left, -1 -1 is on the lower right.
Password can be added to JSON configuration file(s) as follows:
```bash
pylauncher-protect <configuration>
```
Password can be added in the same call using the option
* `-p (--password) <password>`
If not, the user will be prompted to enter it.
Password can be added to all the configuration file referenced within configuration file and any files referenced in the referenced file and so on using the option
* `-r (--recursive) <style_qss_file>`
For all available options and detailed help run
```bash
~$ pylauncher -h
usage: pylauncher-protect [-h] [--password PASSWORD] [--recursive] configuration
Example: pylauncher-protect -r menus/menu.json -p *****
positional arguments:
configuration menu/configuration file
optional arguments:
-h, --help show this help message and exit
--password PASSWORD, -p PASSWORD
password to be added to json file, if not provided
user is prompted to enter it
--recursive, -r add recursively to all files referenced in json
## Configuration
Launcher menus are defined via JSON configuration file(s). On top level, the configuration of the menu is divided in the following 3 sections:
Launcher menus are defined via JSON configuration file(s). On top level, the configuration of the menu is divided in the following 4 sections:
* __menu-title__ - An optional section to set the menu title. If no title is specified a file name is used instead.
@@ -78,8 +109,13 @@ Launcher menus are defined via JSON configuration file(s). On top level, the con
}
]
```
* __password__ - Hash of a password guarding a section of menu and all submenus. Main section to define launcher items. The type of each item is defined with the `type` property. All supported types with available parameters are described in the next section.
An detailed example can be found at [examples/menus/menu_example.json](examples/menus/menu_example.json).
```json
"password": "5f4dcc3b5aa765d61d8327deb882cf99"
```
A detailed example can be found at [examples/menus/menu_example.json](examples/menus/menu_example.json).
### Menu Items
@@ -91,7 +127,7 @@ For any menu item the two optional parameters __help_link__ and __tip__ can be s
#### Styles
The appearance of a menu item can be customized via styles and themes. Therefore each menu item has following 2 optional paramters:
The appearance of a menu item can be customized via styles and themes. Therefore each menu item has following 2 optional parameters:
* __style__ - Enables very flexible customization with [QSS](http://doc.qt.io/qt-4.8/stylesheet-syntax.html) syntax
* __theme__ - Enables customization using one of the predefined themes. How to define a theme is described in section [Stylesheet](#stylesheet). However we strongly discourage the use of theme on a per menu item basis.
@@ -295,6 +331,7 @@ LauncherDetachButton{
}
```
# Installation
## Anaconda
Anaconda comes with all required packages for __pylauncher__. To install the package use
@@ -343,3 +380,4 @@ _Note:_ To be able to build the Anaconda package you need to have the `patchelf`
conda create -n build_environment python patchelf
source activate build_environment
```
+89 -18
View File
@@ -1,24 +1,95 @@
{
"menu-title":
{"text": "F_L1","theme": "green", "style": "color: #FF3388"},
"password": "5f4dcc3b5aa765d61d8327deb882cf99",
"menu-title": {
"text": "F_L1",
"theme": "green",
"style": "color: #FF3388"
},
"file-choice": [
{"text": "Load F_L2", "file": "../menus/menu_2.json"}
{
"text": "Load F_L2",
"file": "../menus/menu_2.json"
}
],
"menu": [
{"type": "title", "text": "General"},
{"type": "cmd", "text": "Who is online", "command": "xeyes", "tip": "List of currently connected users.", "help-link": "http://www.google.com"},
{"type": "title", "text": "HighLevel Applications", "theme": "green"},
{"type": "cmd", "text": "ScreenMonitorTool", "command": "ls", "theme": "green", "style": "color: #FF3388"},
{"type": "cmd", "text": "QE Measurement", "command": "ls -l", "theme": "green"},
{"type": "separator"},
{"type": "title", "text": "Utilities", "theme": "green"},
{"type": "cmd", "text": "Remote network access control by control room", "command": "ls"},
{"type": "menu", "text": "Strip-tool", "file": "menu_10.json"},
{"type": "caqtdm", "text": "CA-screen", "macros": "SYS=TEST", "panel": "screen.ui" },
{"type": "medm", "text": "MEDM-screen", "macros": "SYS=TEST", "panel": "screen.adl" },
{"type": "cmd", "text": "Test", "command": "pep -mc S10BC02-MBND100:I-SET"},
{"type": "cmd", "text": "Test 2", "command": "pylauncher -h"},
{"type": "pep", "text": "Pep type test (.prc)", "panel": "S_TEST_REMOTECTRL_GUDE_SF-CTRL-TEST01.prc"},
{"type": "pep", "text": "Pep type test (.prc)", "param": "-mc S10BC02-MBND100:I-SET"}
{
"type": "title",
"text": "General"
},
{
"type": "cmd",
"text": "Who is online",
"command": "xeyes",
"tip": "List of currently connected users.",
"help-link": "http://www.google.com"
},
{
"type": "title",
"text": "HighLevel Applications",
"theme": "green"
},
{
"type": "cmd",
"text": "ScreenMonitorTool",
"command": "ls",
"theme": "green",
"style": "color: #FF3388"
},
{
"type": "cmd",
"text": "QE Measurement",
"command": "ls -l",
"theme": "green"
},
{
"type": "separator"
},
{
"type": "title",
"text": "Utilities",
"theme": "green"
},
{
"type": "cmd",
"text": "Remote network access control by control room",
"command": "ls"
},
{
"type": "menu",
"text": "Strip-tool",
"file": "menu_10.json"
},
{
"type": "caqtdm",
"text": "CA-screen",
"macros": "SYS=TEST",
"panel": "screen.ui"
},
{
"type": "medm",
"text": "MEDM-screen",
"macros": "SYS=TEST",
"panel": "screen.adl"
},
{
"type": "cmd",
"text": "Test",
"command": "pep -mc S10BC02-MBND100:I-SET"
},
{
"type": "cmd",
"text": "Test 2",
"command": "pylauncher -h"
},
{
"type": "pep",
"text": "Pep type test (.prc)",
"panel": "S_TEST_REMOTECTRL_GUDE_SF-CTRL-TEST01.prc"
},
{
"type": "pep",
"text": "Pep type test (.prc)",
"param": "-mc S10BC02-MBND100:I-SET"
}
]
}
-1
View File
@@ -37,7 +37,6 @@ def processFile(filePath, password, recursive):
if recursive:
files = findAllFiles(data)
for file in files:
print(os.path.realpath(os.path.join(dirname, file)))
processFile(os.path.join(dirname, file), password, recursive)
def findAllFiles(root):