prepare for cli updates with custom php binary
All checks were successful
CI/CD Pipeline / test (push) Successful in 2s
CI/CD Pipeline / deploy (push) Successful in 18s
CI/CD Pipeline / promote_stable (push) Successful in 2s

This commit is contained in:
2026-02-11 18:31:06 +01:00
parent af03c23c9f
commit 54d4cd7f99
5 changed files with 91 additions and 9 deletions

View File

@@ -201,6 +201,11 @@ function Acp({ isAdmin }) {
favicon_128: '',
favicon_256: '',
})
const [systemCliSettings, setSystemCliSettings] = useState({
php_binary: '',
})
const [systemCliSaving, setSystemCliSaving] = useState(false)
const [systemCliError, setSystemCliError] = useState('')
const settingsDetailMap = {
forum_name: 'forumName',
default_theme: 'defaultTheme',
@@ -292,6 +297,9 @@ function Acp({ isAdmin }) {
favicon_256: settingsMap.get('favicon_256') || '',
}
setGeneralSettings(next)
setSystemCliSettings({
php_binary: settingsMap.get('system.php_binary') || '',
})
setAttachmentSettings({
display_images_inline: settingsMap.get('attachments.display_images_inline') || 'true',
create_thumbnails: settingsMap.get('attachments.create_thumbnails') || 'true',
@@ -373,6 +381,23 @@ function Acp({ isAdmin }) {
}
}
const handleSystemCliSave = async (event) => {
event.preventDefault()
setSystemCliSaving(true)
setSystemCliError('')
try {
const value = typeof systemCliSettings.php_binary === 'string'
? systemCliSettings.php_binary.trim()
: String(systemCliSettings.php_binary ?? '')
await saveSetting('system.php_binary', value)
setSystemCliSettings((prev) => ({ ...prev, php_binary: value }))
} catch (err) {
setSystemCliError(err.message)
} finally {
setSystemCliSaving(false)
}
}
const handleLogoUpload = async (file, settingKey) => {
if (!file) return
setGeneralUploading(true)
@@ -3588,9 +3613,30 @@ function Acp({ isAdmin }) {
<h5 className="mb-0">CLI</h5>
</div>
<div className="bb-acp-panel-body">
<p className="bb-muted mb-0">
Placeholder: CLI upgrade commands and automation helpers will live here.
</p>
{systemCliError && <p className="text-danger">{systemCliError}</p>}
<Form onSubmit={handleSystemCliSave}>
<Form.Group className="mb-3">
<Form.Label>PHP interpreter</Form.Label>
<Form.Control
type="text"
placeholder={systemStatus?.php_default || '/usr/bin/php'}
value={systemCliSettings.php_binary}
onChange={(event) =>
setSystemCliSettings((prev) => ({
...prev,
php_binary: event.target.value,
}))
}
/>
<Form.Text className="bb-muted">
Used for CLI-based updates and maintenance tasks. Leave empty to use
the system default.
</Form.Text>
</Form.Group>
<Button type="submit" variant="dark" disabled={systemCliSaving}>
{t('acp.save')}
</Button>
</Form>
</div>
</div>
)}