{-# LANGUAGE OverloadedStrings #-}
module Development.NSIS
(
nsis, nsisNoOptimise, Action, Exp, Value,
share, scope, constant, constant_, mutable, mutable_, (@=),
mutableInt, constantInt, mutableInt_, constantInt_, mutableStr, constantStr, mutableStr_, constantStr_,
iff, iff_, while, loop, onError,
(?), (%&&), (%||),
Label, newLabel, label, goto,
str, int, bool,
(%==), (%/=), (%<=), (%<), (%>=), (%>),
true, false, not_,
strRead, strShow,
(&), strConcat, strLength, strTake, strDrop, strReplace, strIsPrefixOf, strIsSuffixOf, strUnlines, strCheck,
FileHandle, fileOpen, fileWrite, fileClose, withFile', writeFile', writeFileLines,
rmdir, delete, copyFiles,
getFileTime, fileExists, findEach,
createDirectory, createShortcut,
readRegStr, deleteRegKey, deleteRegValue, writeRegStr, writeRegExpandStr, writeRegDWORD, writeRegMultiStr,
envVar,
exec, execWait, execShell, execShellWait, sleep, abort,
HWND, hwndParent, findWindow, getDlgItem, sendMessage,
plugin, push, pop, exp_,
addPluginDir,
name, outFile, installDir, setCompressor,
installIcon, uninstallIcon, headerImage,
installDirRegKey, allowRootDirInstall, caption,
showInstDetails, showUninstDetails, unicode,
requestExecutionLevel, target,
SectionId, section, sectionGroup, newSectionId,
sectionSetText, sectionGetText, sectionSet, sectionGet,
uninstall, page, unpage, finishOptions,
event, onSelChange,
onPageShow, onPagePre, onPageLeave,
file, alwaysNonFatal, writeUninstaller, alert, setOutPath, messageBox,
hideProgress, detailPrint, setDetailsPrint,
unsafeInject, unsafeInjectGlobal,
Compressor(..), HKEY(..), MessageBoxType(..), Attrib(..), Page(..), Level(..), Target(..), Visibility(..),
FileMode(..), SectionFlag(..), ShowWindow(..), FinishOptions(..), DetailsPrint(..)
) where
import Control.Monad
import Development.NSIS.Sugar
import Development.NSIS.Show
import Development.NSIS.Optimise
import Development.NSIS.Library
nsis :: Action a -> String
nsis :: forall a. Action a -> String
nsis = [String] -> String
unlines ([String] -> String)
-> (Action a -> [String]) -> Action a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [NSIS] -> [String]
showNSIS ([NSIS] -> [String])
-> (Action a -> [NSIS]) -> Action a -> [String]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [NSIS] -> [NSIS]
optimise ([NSIS] -> [NSIS]) -> (Action a -> [NSIS]) -> Action a -> [NSIS]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Action () -> [NSIS]
runAction (Action () -> [NSIS])
-> (Action a -> Action ()) -> Action a -> [NSIS]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Action a -> Action ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
nsisNoOptimise :: Action a -> String
nsisNoOptimise :: forall a. Action a -> String
nsisNoOptimise = [String] -> String
unlines ([String] -> String)
-> (Action a -> [String]) -> Action a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [NSIS] -> [String]
showNSIS ([NSIS] -> [String])
-> (Action a -> [NSIS]) -> Action a -> [String]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Action () -> [NSIS]
runAction (Action () -> [NSIS])
-> (Action a -> Action ()) -> Action a -> [NSIS]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Action a -> Action ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void