DSCResources/cFirefoxBookmarks/cFirefoxBookmarks.schema.psm1
Configuration cFirefoxBookmarks { # help about bookmarks # https://www.mozilla.jp/business/faq/tech/customize-defaults/#faq2 param ( [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $Title, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $Link, [Parameter()] [ValidateRange(1, 99)] [int] $Position = 1, [Parameter()] [ValidateNotNullOrEmpty()] [string] $BookmarksLocation = 'BookmarksMenu', # BookmarksMenu / BookmarksToolbar / BookmarksFolder-(FolderId) [Parameter()] [ValidateSet('link', 'separator', 'folder')] [string] $Type = 'link', [Parameter()] [string] $IconUrl, [Parameter()] [string] $IconData, [Parameter()] [int] $FolderId = 1, [Parameter()] [ValidateNotNullOrEmpty()] [string] $FirefoxDirectory = 'C:\Program Files\Mozilla Firefox' ) Import-DscResource -ModuleName PSDesiredStateConfiguration Import-DscResource -ModuleName DSCR_FileContent $MozIniPath = Join-Path $FirefoxDirectory '\distribution\distribution.ini' $Global = @{ id = 'DSC-Customized' version = '1.0' about = 'DSC-Customized' } Script Test_FireFoxDirectory { GetScript = { } TestScript = { if (-not (Test-Path (Join-Path $using:FirefoxDirectory 'FireFox.exe') -PathType Leaf)) { Write-Warning ('"FireFox.exe" does not exist in "{0}". Please confirm FireFoxDirectory' -f $using:FirefoxDirectory) } $true } SetScript = { } } IniFile Global_Id { Ensure = 'Present' Path = $MozIniPath Key = 'id' Value = $Global.id Section = 'Global' Encoding = 'UTF8' } IniFile Global_version { Ensure = 'Present' Path = $MozIniPath Key = 'version' Value = $Global.version Section = 'Global' Encoding = 'UTF8' } IniFile Global_about { Ensure = 'Present' Path = $MozIniPath Key = 'about' Value = $Global.about Section = 'Global' Encoding = 'UTF8' } IniFile Global_bookmarks { Ensure = 'Present' Path = $MozIniPath Key = 'bookmarks.initialized.pref' Value = 'distribution.ini.boomkarks.initialized' Section = 'Global' Encoding = 'UTF8' } if ($Type -eq 'link') { IniFile Bookmarks_Title { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.title") Value = $Title Section = $BookmarksLocation Encoding = 'UTF8' } IniFile Bookmarks_Link { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.link") Value = $Link Section = $BookmarksLocation Encoding = 'UTF8' } if ($IconUrl) { IniFile Bookmarks_Icon { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.icon") Value = $IconUrl Section = $BookmarksLocation Encoding = 'UTF8' } } if ($IconData) { IniFile Bookmarks_IconData { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.iconData") Value = $IconData Section = $BookmarksLocation Encoding = 'UTF8' } } } if ($Type -eq 'separator') { IniFile Bookmarks_Separator { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.type") Value = $Type Section = $BookmarksLocation Encoding = 'UTF8' } } if ($Type -eq 'folder') { IniFile Bookmarks_Folder { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.type") Value = $Type Section = $BookmarksLocation Encoding = 'UTF8' } IniFile Bookmarks_Title { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.title") Value = $Title Section = $BookmarksLocation Encoding = 'UTF8' } IniFile Bookmarks_FolderId { Ensure = 'Present' Path = $MozIniPath Key = ("item.$Position.folderId") Value = $FolderId Section = $BookmarksLocation Encoding = 'UTF8' } } } |