This section describes the folder structure for all possible deployment modes : 1. **Control-Freak installed** (when downloaded and installed from official sources) 2. **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 |
**Remarks**
**Links**
**FAQ**
1. **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
2. **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.
3. **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)
4. **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.