7.4 KiB
This section describes the folder structure for all possible deployment modes :
-
Control-Freak installed (when downloaded and installed from official sources)
-
Developer is the version with all source code (non-minified)
1. 'Control-Freak' installed
System Variables (OS specific defaults):
INSTALL_DIR
- Windows: C:\Program Files\ControlFreak\
- Linux: /opt/control-freak/
- Mac: /Applications/control-freak/
USER_DIR
- Windows: C:\Users\JonDoe.cf
- Linux: /home/JonDoe/.cf
- Mac: /Users/.cf/
Locations:
| Name | Description | Location | Variable | Updates |
|---|---|---|---|---|
| General folders | ||||
| Workspace | The user's own workspace folder | USER_DIR\workspace |
workspace | |
| App-Directory | the directory of an deployed application | anywhere | app-directory | optional |
| Device-Control-Server | the location of the device control server | INSTALL_DIR/device-control-server or app-directory/device-control-server | device-control-server | optional |
| Drivers | Default driver locations | |||
| System - Drivers | All global known drivers | INSTALL_DIR/data/driver/system | system-drivers | yes |
| User - Drivers | The user's drivers | workspace/drivers | user-drivers | |
| Project - Drivers | App only drivers | workspace/project-name/drivers | project-drivers | |
| Devices | Default device date locations | |||
| System - Devices | All known system devices such as the loopback device for testing | INSTALL_DIR/data/devices/system | system-devices | yes |
| User - Devices |
The user's devices | workspace/devices | user-devices | |
| Project - Devices | App only devices | workspace/project-name/devices | project-devices | |
| Logs | Default locations for log files | |||
| System - Logs | all system related log files | INSTALL_DIR/logs/ | system-log-directory | |
| User - Logs | all user logs | workspace/logs/ | user-log-directory | |
| App - Log | all app logs | workspace/project-name/logs or app-directory/logs | app-log-directory |
Data scopes as diagram
Remarks
Links
FAQ
- Why different locations ('scopes') like system/users/app ?
By separating items into different directories, an administrator has the possibilities:
- secure this folders with OS's file system security
- he can easily manage this folders compared to a database solution. For instance he can put these folders also into the cloud or on a network drive
- Can I edit these items with my editor?
yes, all data is based on open standards like JSON. Changing these files will most of the time also update the IDE or the control-application.
- So I can copy paste files among these scopes as I like?
yes, as long you have the permissions, you can simply copy & paste items also outside of the IDE (which is being updated)
- What does these 'variables' mean?
Variables are used all over the place to avoid hard-coded strings.
Also, the IDE is providing various scripting possibilities. For instance there are some callbacks when files are changed or added. A user might listen to these events and run his scripts (Javascript or xBlox or shell). In any case, the system resolves all variables into strings at run-time, so that you can use the blocks "Copy Directory" with these variables. Ideally, a user might change some paths but no changes in scripts are required.