-
Notifications
You must be signed in to change notification settings - Fork 12
/
README.developer
159 lines (146 loc) · 7.06 KB
/
README.developer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
Full developer documentation is in the OS.js wiki
General:
-------------------------------------------------------------------------------
This project was developed using Vim with formatting:
* No tabs (spaces as tabs)
* Indent spacing of 2 (spaces)
* Strict PHP 5.3+ (E_STRICT)
* Strict JavaScript (jslint)
Please note that performance is noticably slower in development mode, beacause:
* JavaScript debugging and logging is enabled
* Caching and Expiration of resources has been disabled
* Backend logging is enabled
* Resources are loaded from raw, no compression or minimization
All resources are Gzipped by default (if browser has native support).
Standalone Executable:
-------------------------------------------------------------------------------
Start 'bin/session-server' and launch with 'bin/session-launch'. This work
is highly experimental and under heavy development. Don't expect it to work
for now.
Committing changes:
-------------------------------------------------------------------------------
Just run './bin/git-commit' wrapper (works just like normal `git commit`)
Updating codebase (Pulling latest changes):
-------------------------------------------------------------------------------
Just run './bin/git-update'
Adding Users:
-------------------------------------------------------------------------------
Use the './bin/add-user' script
Packages - Creating and Installing an Application:
-------------------------------------------------------------------------------
- Create a package with './bin/create-package'
- Install with './bin/install-all'
- Minimize with './bin/update-compression' (Optional or for updating on test/pub)
Packages - Notes:
-------------------------------------------------------------------------------
- You have to restart OS.js every time you change a package code.
Or alternatively close the application (for now)
- If the package does not show in the application menu or does not run etc.
check if it's enabled in the control panel.
- When minimizing/compressing scripts all debugging code and symbols are removed
WebSocket - TCP/IP Tunnel:
-------------------------------------------------------------------------------
Start the server with 'php bin/socket-server'
Locales - Notes:
-------------------------------------------------------------------------------
- After chaning Gettext (PHP) locales a restart of Apache is required.
Directories and Files:
-------------------------------------------------------------------------------
/bin/ Misc scripts
add-user Add a user
compile-all Compile all packages
create-archive Create package zipped archive
create-package Create a new Package
fix-permissions Correct file/directory permissions
git-commit Git Wrapper: Commit changes
git-commit-prepare Git Helper: Commit preparation
git-update Git Wrapper: Pull latest changes
install-all Install all packages
joxygen Update/Generate Frontend Documentation
update-compression Compress/Minimize (All) Resources
update-documentation Update/Generate Backend Documentation
update-fontcache Update/Generate Font cache
update-locale Update/Generate Backend Locales
socket-server WebSocket TCP/IP Wrapper Server
session-server WebSocket Core Wrapper Server **
session-launch GTK+WebKit Core Launcher **
/doc/ Documentation
/api/ Backend Documentation
/javascript/ Frontend Documentation
XX_apache-vhost.conf Apache Host Configuration Example
doxygen.conf Doxygen Configuration
/lib/ Main Libraries
Archive.php Archive Handling
Functions.php Misc. Functions
IMAP.php IMAP and Mailing
Services.php Internet and Network services
Browser.class.php Browser Information Class
Compiler.class.php Package/Project Compiler Class
Daemon.class.php Daemon Process Class
DB.class.php Database connection and handling Class
Glade.class.php Glade/GTK+ XML to JS/PHP/XML Class
JSON.class.php JSON Wrapper Class
Logger.class.php Logging Handling Class
MediaFile.class.php Media File Handling Class
PDF.class.php PDF Document Handling Class
REST.class.php HTTP REST API Class
Server.class.php WebSocket Server Main Class
ServerUser.class.php WebSocket Server User Class
/logs/ Logs
error_log Apache Error Log
access_log Apache Access Log
messages Backend Logging
/public_html/ Main Apache Root
/img/ Frontend images
/icons/ Frontend Icon Theme
...
...
/media/ Virtual File System root
...
/sounds/ Frontend Sound Files
...
/vendor/ Frontend Vendor Libraries (Symlinks)
...
_header.php * Header file for scripts below
download.php * Download files
index.php * Main script
resource.php * Resource fetcher
upload.php * Upload files
robots.txt Search Engine whitelisting
crossdomain.xml Flash helper
/src/ Main Sources
/build/ Build files, cache and temporary files
/packages/ Package build output
fontcache.xml Font cache
packages.xml Package registry
/javascript/ Frontend scripts etc.
/locale/ Frontend Locales
/locale/ Backend Locales
/xx_XX/
/LC_MESSAGES/
messages.po
/templates/ Frontend/Script misc templates
...
/packages/ Frontend packages (Applications etc)
API.class.php Backend API Methods
Application.class.php Package > Application Class
BackgroundService.cl... Package > Background Service Class
Core.class.php Core, Main Class
CoreSettings.class.php Core Settings Managment Class
Package.class.php Package Main Class
PackageException.cla... Package Exception Class
PackageManager.class.php Package Managment Class
PanelItem.class.php Frontend Panel Item Class
ResourceManager.class.php Resource Managment Class
Session.class.php User Session Handling Class
SettingsManager.class.php User Settings Handling Class
User.class.php User Main Handling Class
VFS.class.php Virtual File System Main Class
Misc.php Misc functions and classes
/vendor/ Vendor Libraries
/VFS/ Virtual File System for Users
header.php Configuration, Bootstrap and main init script
config.php YOUR CONFIGURATION (see example)
config.example.php Example configuration
* = Frontend URI
** = Frontend Standalone Platform