cmd | ||
common | ||
detector | ||
log | ||
parser | ||
pusher | ||
.gitignore | ||
build.sh | ||
clean.sh | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
README.md |
SylixOS Uploader
SylixOS Uploader is a command-line tool designed for uploading SylixOS projects via CORBA. It simplifies the process of transferring files to remote devices, setting appropriate permissions, and generating configuration YAML files for project uploads.
Features
-
File Uploads:
- Upload project files to remote devices using FTP.
- Automatically set permissions (chmod 0755) for:
- ELF executables or shared object files.
- Known executable scripts (e.g., .sh, .py, .lua, etc.).
-
YAML Generation:
- Generate structured YAML configuration files for SylixOS projects, ensuring easier management and deployment.
-
Versioning:
- Injects Git version information into the build, including the latest tag, commit hash, and dirty state (if there are uncommitted changes).
-
Flexible Build Options:
- Default: Build only for the local platform.
- Optionally: Cross-compile for multiple platforms (Linux, Windows, macOS, SylixOS).
- Supports installation to a specified directory.
Usage
Upload Example
sylixos-uploader upload --path ~/sylixos-workspace/base-project --device 10.13.16.250 --method ftp
Generate YAML Example
sylixos-uploader gen-yaml --path ~/sylixos-workspace/base-project
YAML File Example
base-settings:
project-name: app_test
project-type: SylixOSAppProject
$(ProjectPath): /home/user/sylixos-workspace/app_test
$(Output): Release
remote-settings:
ipaddr: 10.7.130.102
work-path: /apps/app_test
protocol: ftp
upload-pair:
- local-path: $(ProjectPath)/$(Output)/strip
remote-path: /usr/bin
Building SylixOS Uploader
Requirements
- Golang installed and configured with GOOS=sylixos support.
- Git available in the environment.
Build Script
Use the build.sh script to compile the tool. The script determines the version based on Git tags and the latest commit, providing flexible options.
Script Options
- --all: Build for all supported platforms (Linux, Windows, macOS, SylixOS).
- --install-dir <dir>: Install the binary to the specified directory.
Examples
Build for the local platform
./build.sh
Build for all platforms
./build.sh --all
Build local platform and Install to a directory
./build.sh --install-dir /usr/local/bin
Supported Platforms
-
Linux:
- amd64
- arm64
-
Windows:
- amd64
- arm64
-
macOS:
- amd64
- arm64
-
SylixOS:
- arm64
Known Issues
- Currently, only FTP is supported for uploads.
Known Behaviors
- Uploads projects to the specified remote device.
- On the remote device:
- ELF executables or shared objects are set to chmod 0755.
- Known executable scripts are set to chmod 0755.
- Generates a YAML file from the actual SylixOS project.
Contributing
Feel free to submit pull requests or report issues on the project’s repository. Ensure that your code adheres to the project guidelines and includes relevant tests.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contact
For any issues, questions, or feature requests, reach out to the maintainers via Gitea.