BoxLang 🚀 A New JVM Dynamic Language Learn More...
|:------------------------------------------------------: |
| ⚡︎ B o x L a n g ⚡︎
| Dynamic : Modular : Productive
|:------------------------------------------------------: |
Copyright Since 2023 by Ortus Solutions, Corp
www.boxlang.io | www.ortussolutions.com
This module is based on the great work of the oshi
library https://github.com/oshi/oshi?tab=readme-ov-file#documentation. You can use this module to get information about the Operating System and Hardware of the machine you are running on. This is a great way to even get sensor information or embedded system information like battery, raspberry pi, etc.
OSHI is a free JNA-based (native) Operating System and Hardware Information library for Java. It does not require the installation of any additional native libraries and aims to provide a cross-platform implementation to retrieve system information, such as OS version, processes, memory and CPU usage, disks and partitions, devices, sensors, etc.
Here are the contributed functions in this module:
getSystemInfo()
: Get's the main entry point for the OSHI system: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/SystemInfo.htmlgetOperatingSystem()
: Get's the Operating System information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/software/os/OperatingSystem.htmlgetHardware()
: Get's the Hardware information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/hardware/HardwareAbstractionLayer.htmlThe following are also contributed functions provided by convenience:
getCpuUsage( [interval] )
: Gets the CPU usage of the system with a custom intervalgetFreeSpace( path )
: Gets the free space of a drivegetTotalSpace( path )
: Gets the total space of a drivegetSystemFreeMemory()
: Gets the free memory of the operating systemgetSystemTotalMemory()
: Gets the total memory of the operating systemgetJVMFreeMemory()
: Gets the free memory of the JVMgetJVMTotalMemory()
: Gets the total memory of the JVMThis module also provides a way to read and write initialization files.
[General]
appName=MyApplication
version=1.2.3
author=John Doe
boxlang=rocks
[Database]
host=localhost
port=5432
username=dbuser
password=dbpass
dbname=mydatabase
[Logging]
logLevel=DEBUG
logFile=/var/log/myapp.log
maxFileSize=10MB
[Features]
enableFeatureX=true
enableFeatureY=false
maxConnections=100
You can use the following functions to read and write ini files:
getIniFile( file )
: Reads an ini file and returns the IniFile object. If the file does not exist, it will create it.getProfileSection( iniFile, section )
: Gets a section from the ini file as a structgetProfileSections( iniFile )
: Gets all the sections from the ini file as a struct of structsgetProfileString( iniFile, section, entry )
: Gets an entry from a section in the ini file, if it does not exist, it will return an empty stringsetProfileString( iniFile, section, entry, value )
: Sets an entry in a section in the ini file, if the section does not exist, it will create itremoveProfileSection( iniFile, section )
: Removes a section from the ini fileremoveProfileString( iniFile, section, entry )
: Removes an entry from a section in the ini fileThe IniFile
object is a fluent object that allows you to work with ini files in a very easy way. Here is an example of how to use it:
// Get the ini file
var iniFile = getIniFile( "test.ini" );
iniFile.createSection( "mySettings" );
// Set a string
iniFile.setEntry( "section1", "entry1", "value1" );
// Get a string
var value = iniFile.getEntry( "section1", "entry1" );
// Remove a string
iniFile.removeEntry( "section1", "entry1" );
// Remove a section
iniFile.removeSection( "section1" );
Please note that with access to the hardware and operating system, you can get a lot more information. Please visit the OSHI documentation for more information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/package-summary.html
BoxLang is a professional open-source project and it is completely funded by the community and Ortus Solutions, Corp. Ortus Patreons get many benefits like a cfcasts account, a FORGEBOX Pro account and so much more. If you are interested in becoming a sponsor, please visit our patronage page: https://patreon.com/ortussolutions
"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
ini
features from the module to the bx-ini
module
$
box install bx-oshi