control-freak-ide/Control-Freak-Documentation/docFiles/internal/09_Folder_Structure/_index.md
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

7.4 KiB

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

Data scopes as diagram

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
  1. 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.

  1. 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)

  1. 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.