Config File

Each project needs a socket.ini file in the root direcrory. This is an ini file.

;  ___  __   ___      __ ____
; /__  /  / /   /_/  /_   /
; __/ /__/ /__ /  \ /__  /
;
; Socket ⚡︎ Runtime · A modern runtime for Web Apps · v{{ssc_version}}
;

[build]

; ssc will copy everything in this directory to the build output directory.
; This is useful when you want to avoid bundling or want to use tools like
; vite, webpack, rollup, etc. to build your project and then copy output to
; the Socket bundle resources directory.
copy = "src"

; A unique ID that identifies the bundle (used by all app stores).
bundle_identifier = "com.beepboop"

; A string that gets used in the about dialog and package meta info.
copyright = "(c) Beep Boop Corp. 1985"

; A short description of the app.
description = "A UI for the beep boop network"

; An list of environment variables, separated by commas.
env = USER, TMPDIR, PWD

; The name of the file to be output.
executable = "boop"

; If false, the window will never be displayed.
headless = false

; Advanced Compiler Settings (ie C++ compiler -02, -03, etc).
flags = -O3

; Set the limit of files that can be opened by your process.
file_limit = 1024,

; Localization
lang = "en-us"

; A String used in the about dialog and meta info.
maintainer = "Beep Boop Corp."

; The name of the program
name = "beepboop"

; The binary output path. It's recommended to add this path to .gitignore.
output = "dist"

; TODO: maybe the user doesn't need to know about this? 
revision = 123

; The shell command to execute when building an application. This is the most
; important command in this file. This will do all the heavy lifting and should
; handle 99.9% of your use cases for moving files into place or tweaking
; platform-specific build artifacts.
script = "node build-script.js"

; A string that indicates the version of the application. It should be a semver triple like 1.0.0
version = 0.0.1

[debug]

; Advanced Compiler Settings for debug purposes (ie C++ compiler -g, etc).
flags = "-g"


[android]

; TODO description needed
main_activity = ""


[ios]

; signing guide: https://sockets.sh/guides/#ios-1
codesign_identity = ""

; Describes how Xcode should export the archive. Available options: app-store, package, ad-hoc, enterprise, development, and developer-id.
distribution_method = "ad-hoc"

; A path to the provisioning profile used for signing iOS app.
provisioning_profile = ""

; which device to target when building for the simulator
simulator_device = "iPhone 14"


[linux]
; Helps to make your app searchable in Linux desktop environments.
categories = "Developer Tools"

; The command to execute to spawn the "back-end" process.
cmd = "beepboop"

; The icon to use for identifying your app in Linux desktop environments.
icon = "src/icon.png"


[mac]

; Mac App Store icon
appstore_icon = "src/icons/icon.png"

; A category in the App Store
category = ""

; The command to execute to spawn the "back-end" process.
cmd = ""

; The icon to use for identifying your app on MacOS.
icon = ""

; TODO description & value (signing guide: https://sockets.sh/guides/#macos-1)
sign = ""

; TODO description & value
codesign_identity = ""

; TODO description & value
sign_paths = ""


[native]

; Files that should be added to the compile step.
files = native-module1.cc native-module2.cc

; Extra Headers
headers = native-module1.hh


[win]

; The command to execute to spawn the “back-end” process.
cmd = "beepboop.exe"

; The icon to use for identifying your app on Windows.
icon = ""

; The icon to use for identifying your app on Windows.
logo = "src/icons/icon.png"

; A relative path to the pfx file used for signing.
pfx = "certs/cert.pfx"

; The signing information needed by the appx api.
publisher = "CN=Beep Boop Corp., O=Beep Boop Corp., L=San Francisco, S=California, C=US"

[window]

; The initial height of the first window.
height = 80%

; The initial width of the first window.
width = 80%