#cNP3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~              !"#$%&'()*+,-./012+Shared code for individual command handlers(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneheadroom Bootstraps RIOT application using provided environment data and flag whether to run in debug mode.headroom#function returning environment dataheadroomwhether to run in debug modeheadroomRIO application to executeheadroomexecution result(Helper functions for regular expressions(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone!headroomSame as 3 , but takes 4 on input and enables 5 option by default.headroomNJoins list of patterns into single regex string. If the input list is empty, 6 is returned.joinPatterns ["^foo", "^bar"]Just "^foo|^bar"headroomSame as 7, but works with 4 and uses no additional options.headroom!regular expression to be compiledheadroomcompiled regular expressionheadroomlist of patterns to joinheadroomjoined patternsheadroom3a PCRE regular expression value produced by compileheadroom!the subject text to match againstheadroomthe result value,Various functions for data (de)serialization(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone_-headroomCustom AesonE encoding options used for generic mapping between data records and JSON or YAMLZ values. Expects the fields in input to be without the prefix and with words formated in  symbol case (example: record field  uUserName, JSON field  user-name).headroom"Drops prefix from camel-case text.dropFieldPrefix "xxHelloWorld" "helloWorld"headroom=Transforms camel-case text into text cased with given symbol.symbolCase '-' "fooBar" "foo-bar"headroomPretty prints given data as YAML.headroomword separator symbolheadroom input textheadroomprocessed textheadroomdata to pretty printheadroompretty printed YAML output1Generic representation of supported template type(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone8Zheadroom@Type class representing generic license header template support. headroomAReturns list of supported file extensions for this template type. headroom$Parses template from given raw text. headroomFRenders parsed template and replaces all variables with actual values. headroom!list of supported file extensions headroomname of the template (optional)headroomraw template textheadroomparsed template headroomvalues of variables to replaceheadroomparsed template to renderheadroomrendered template text  "Extra functionality for enum types(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneXJ headroompEnum data type, capable to (de)serialize itself from/to string representation. Can be automatically derived by GHC using the DeriveAnyClass extension. headroom Returns list of all enum values.(:set -XDeriveAnyClass -XTypeApplicationsHdata Test = Foo | Bar deriving (Bounded, Enum, EnumExtra, Eq, Ord, Show)allValues @Test [Foo,Bar]headroomUReturns all values of enum as single string, individual values separated with comma.(:set -XDeriveAnyClass -XTypeApplicationsHdata Test = Foo | Bar deriving (Bounded, Enum, EnumExtra, Eq, Ord, Show)allValuesToText @Test "Foo, Bar"headroom:Returns textual representation of enum value. Opposite to .:set -XDeriveAnyClassHdata Test = Foo | Bar deriving (Bounded, Enum, EnumExtra, Eq, Ord, Show)enumToText Bar"Bar"headroomAReturns enum value from its textual representation. Opposite to .:set -XDeriveAnyClassHdata Test = Foo | Bar deriving (Bounded, Enum, EnumExtra, Eq, Ord, Show)"(textToEnum "Foo") :: (Maybe Test)Just Foo    Application data types(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"#79_Yheadroom)Partial (possibly incomplete) version of -.headroomconfiguration for C programming languageheadroomconfiguration for C++ programming languageheadroomconfiguration for CSSheadroomconfiguration for Haskell programming languageheadroomconfiguration for HTMLheadroomconfiguration for Java programming languageheadroomconfiguration for  JavaScript programming languageheadroomconfiguration for Rust programming languageheadroomconfiguration for Scala programming languageheadroomconfiguration for Shellheadroom)Partial (possibly incomplete) version of 9.headroom%list of file extensions (without dot) headroom)number of empty lines to put after header!headroom*number of empty lines to put before header"headroomregexp' patterns after which to put the header#headroomregexp( patterns before which to put the header$headroom$syntax of the license header comment%headroom)Partial (possibly incomplete) version of A.'headroom mode of the run command(headroompaths to source code files)headroomexcluded source paths*headroompaths to template files+headroomvariable values for templates,headroom configuration of license headers8headroom-Internal representation of the line style of I.9headroom!prefix of the comment line (e.g. //):headroom2Internal representation of block comment style of I.;headroomstarting pattern (e.g. /*)<headroomending pattern (e.g. */)-headroom Group of 9) configurations for supported file types./headroomconfiguration for C programming language0headroomconfiguration for C++ programming language1headroomconfiguration for CSS2headroomconfiguration for Haskell programming language3headroomconfiguration for HTML4headroomconfiguration for Java programming language5headroomconfiguration for  JavaScript programming language6headroomconfiguration for Rust programming language7headroomconfiguration for Scala programming language8headroomconfiguration for Shell9headroom*Configuration for specific license header.;headroom%list of file extensions (without dot)<headroom)number of empty lines to put after header=headroom*number of empty lines to put before header>headroomregexp' patterns after which to put the header?headroomregexp( patterns before which to put the header@headroom$syntax of the license header commentAheadroomApplication configuration.Cheadroom mode of the run commandDheadroompaths to source code filesEheadroomexcluded source pathsFheadroompaths to template filesGheadroomvariable values for templatesHheadroom configuration of license headersIheadroom%Syntax of the license header comment.Jheadroom(block (multi-line) comment syntax (e.g. * *)Kheadroom!single line comment syntax (e.g. //)Lheadroom3Info extracted about the concrete source code file.Nheadroomtype of the fileOheadroom configuration for license headerPheadroom#position of existing license headerQheadroomadditional extracted variablesRheadroom&Supported type of open source license.Sheadroom support for  Apache-2.0 licenseTheadroom support for  BSD-3-Clause licenseUheadroom support for GNU GPL2 licenseVheadroom support for GNU GPL3 licenseWheadroom support for MIT licenseXheadroom support for MPL2 licenseYheadroom#Supported type of source code file.Zheadroom support for C programming language[headroom support for C++ programming language\headroom support for CSS]headroom support for Haskell programming language^headroom support for HTML_headroom support for Java programming language`headroom support for  JavaScript programming languageaheadroom support for Rust programming languagebheadroom support for Scala programming languagecheadroom support for ShelldheadroomOptions for the run command.fheadroomused Run command modegheadroomsource code file pathshheadroomsource paths to excludeiheadroomtemplate file pathsjheadroom raw variableskheadroomwhether to run in debug modelheadroomwhether to perform dry runmheadroomOptions for the init command.oheadroompaths to source code filespheadroom license typeqheadroomOptions for the gen command.sheadroom selected modetheadroomApplication command.uheadroomrun commandvheadroomgen commandwheadroominit commandxheadroom!Error during processing template.yheadroommissing variable valueszheadroomerror parsing raw template text{headroom&Error during processing configuration.|headroominvalid variable input (as  key=value)}headroomillegal configuration for I~headroomno configuration for file-extensionsheadroom"no configuration for header syntaxheadroomno configuration for  margin-afterheadroomno configuration for  margin-beforeheadroomno configuration for  put-afterheadroomno configuration for  put-beforeheadroomno configuration for run-modeheadroomno configuration for  source-pathsheadroomno configuration for excluded-pathsheadroomno configuration for template-pathsheadroomno configuration for  variablesheadroomError specific for the init command.headroom-application configuration file already existsheadroom&no paths to source code files providedheadroom-no supported file types found on source pathsheadroomError specific for the gen command.headroom no mode of Gen command selectedheadroomARepresents error that can occur during the application execution.headroomerror specific for the gen commandheadroomerror specific for the init commandheadroomerror processing configurationheadroomerror processing templateheadroom"Represents what action should the gen command perform.headroom generate YAML config file stubheadroom generate license header templateheadroom"Represents what action should the run command perform. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstvwuxzy{|}~ABCDEFGH9:;<=>?@-./012345678%&'()*+, !"#$IJKtvwuqrsmnopdefghijkl{|}~xzyRSTUVWXYZ[\]^_`abcLMNOPQImplementation of Mustache template support(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone_`headroomThe Mustache template.headroom Support for Mustache templates.License header manipulation(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"# headroomhExtracts info about the processed file to be later used by the header detection/manipulation functions.headroom/Adds given header at position specified by the L6. Does nothing if any header is already present, use  if you need to override it.headroom*Drops header at position specified by the L< from the given text. Does nothing if no header is present.headroom6Replaces existing header at position specified by the L( in the given text. Basically combines  with D. If no header is present, then the given one is added to the text.headroomFinds header position in given text, where position is represented by line number of first and last line of the header (numbered from zero). Based on the I specified in given 9., this function delegates its work to either  or .?let hc = HeaderConfig ["hs"] 0 0 [] [] (BlockComment "{-" "-}")+findHeader hc "foo\nbar\n{- HEADER -}\nbaz" Just (2,2)headroomFinds header in the form of multi-line comment> syntax, which is delimited with starting and ending pattern.8findBlockHeader "{-" "-}" ["", "{- HEADER -}", "", ""] 0 Just (1,1)headroomFinds header in the form of single-line comment5 syntax, which is delimited with the prefix pattern.?findLineHeader "--" ["", "a", "-- first", "-- second", "foo"] 0 Just (2,3)headroom-Finds very first line that matches the given regex (numbered from zero).KfirstMatching (compile' "^foo") ["some text", "foo bar", "foo baz", "last"]Just 1headroom,Finds very last line that matches the given regex (numbered from zero).JlastMatching (compile' "^foo") ["some text", "foo bar", "foo baz", "last"]Just 2headroom$Splits input lines into three parts: wlist of all lines located before the very last occurence of one of the conditions from the first condition list2list of all lines between the first and last listsxlist of all lines located after the very first occurence of one of the conditions from the second condition list]If both first and second patterns are empty, then all lines are returned in the middle list.4splitInput ["->"] ["<-"] "text\n->\nRESULT\n<-\nfoo"'(["text","->"],["RESULT"],["<-","foo"])0splitInput [] ["<-"] "text\n->\nRESULT\n<-\nfoo"(([],["text","->","RESULT"],["<-","foo"])splitInput [] [] "one\ntwo"([],["one","two"],[])headroomtype of the detected fileheadroom appropriate header configurationheadroomtext used for detectionheadroomresulting file infoheadroom%info about file where header is addedheadroomtext of the new headerheadroom(text of the file where to add the headerheadroom resulting text with added headerheadroom9info about the file from which the header will be droppedheadroom.text of the file from which to drop the headerheadroom"resulting text with dropped headerheadroom2info about the file in which to replace the headerheadroomtext of the new headerheadroom,text of the file where to replace the headerheadroom#resulting text with replaced headerheadroom appropriate header configurationheadroom"text in which to detect the headerheadroomheader position (startLine, endLine)headroomstarting pattern (e.g. {- or /*)headroomending pattern (e.g. -} or */)headroom+lines of text in which to detect the headerheadroom/line number offset (adds to resulting position)headroomheader position &(startLine + offset, endLine + offset)headroomprefix pattern (e.g. -- or //)headroom+lines of text in which to detect the headerheadroom/line number offset (adds to resulting position)headroomheader position &(startLine + offset, endLine + offset) Embedded files(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone5headroomContent of dummy YAML( configuration file for the application.headroomDefault YAML configuration.headroom#License template for given license.headroom(license for which to return the templateheadroom(license for which to return the templateheadroom template text 5Configuration handling (loading, parsing, validating)(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"#headroom6Loads and parses application configuration from given YAML file.headroom9Parses application configuration from given raw input in YAML format.headroom#Parses variables from raw input in  key=value format.parseVariables ["key1=value1"]fromList [("key1","value1")]headroom Makes full A from provided % (if valid).headroom Makes full - from provided  (if valid).headroom Makes full 9 from provided  (if valid).headroompath to YAML configuration fileheadroomparsed configurationheadroomraw input to parseheadroom parsed application configurationheadroomlist of raw variablesheadroomparsed variablesheadroomsource %headroomfull Aheadroomsource headroomfull -headroom4determines for which file type this configuration isheadroomsource headroomfull 9 Handler for the gen command.(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone_1=headroomlogging function>headroomoptionsheadroomParses ( from combination of options from given t.headroom Handler for  Generator command.headroom command from which to parse the headroomparsed headroom Generator command optionsheadroomexecution result &Logic for handlig supported file types(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"#kheadroomReturns YK for given file extension (without dot), using configured values from the -.headroom/Lists all recognized file extensions for given Y$, using configured values from the -.headroomReturns the proper 9 for the given Y, selected from the -.headroomlicense headers configurationheadroomfile extension (without dot)headroomfound Yheadroomlicense headers configurationheadroomY for which to list extensionsheadroom#list of appropriate file extensionsheadroomlicense headers configurationheadroom selected Yheadroom appropriate 9 +Operations related to files and file system(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone&headroomKRecursively finds files on given path whose filename matches the predicate.headroom9Recursively finds files on given path by file extensions.headroom9Recursively find files on given path by their file types.headroomxRecursively find all files on given path. If file reference is passed instead of directory, such file path is returned.headroomFReturns file extension for given path (if file), or nothing otherwise.%fileExtension "path/to/some/file.txt" Just "txt"headroom$Loads file content in UTF8 encoding.headroom{Takes list of patterns and file paths and returns list of file paths where those matching the given patterns are excluded.HexcludePaths ["\\.hidden", "zzz"] ["foo/.hidden", "test/bar", "x/zzz/e"] ["test/bar"]headroompath to searchheadroompredicate to match filenameheadroom found filesheadroompath to searchheadroom%list of file extensions (without dot)headroomlist of found filesheadroom configuration of license headersheadroomlist of file typesheadroompath to searchheadroomlist of found filesheadroompath to searchheadroomlist of found filesheadroom file pathheadroom file contentheadroom$patterns describing paths to excludeheadroomlist of file pathsheadroomresulting list of file paths  Custom readers for optparse-applicative library(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNonek,headroomReader for tuple of R and Y.headroom Reader for R. headroomParses R and Y& from the input string, formatted as licenseType:fileType.&parseLicenseAndFileType "bsd3:haskell"Just (BSD3,Haskell)  $UI component for displaying progress(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone3 headroomSProgress indication. First argument is current progress, second the maximum value. headroom'Zips given list with the progress info.zipWithProgress ["a", "b"]'[(Progress 1 2,"a"),(Progress 2 2,"b")] headroomlist to zip with progressheadroom zipped result       UI Components(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone4   Safe5?@ABCDEF)Application metadata (name, vendor, etc.)(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone;Gheadroom5Type of the template format used for license headers.headroom%Application version, as specified in headroom.cabal file.headroomFull product description.headroom Product info.headroom Product name.headroom Homepage website of the product.Handler for the run command.(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"#PkCGheadroomEnvironment value with Init command options.HheadroomFull RIO environment for the Run command.Iheadroomstartup RIO environmentJheadroomapplication configurationKheadroomInitial RIO startup environment for the Run command.Lheadroomlogging functionMheadroomoptionsheadroom Handler for Run command.headroomRun command optionsheadroomexecution resultHandler for the init command(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneP_kMheadroomEnvironment value with ". headroomEnvironment value with init command options."headroom*Paths to various locations of file system.'headroomRIO Environment for the init command.,headroom Handler for init command.-headroomcRecursively scans provided source paths for known file types for which templates can be generated..headroom6Checks whether application config file already exists.Nheadroom%Creates directory for template files.,headroominit command optionsheadroomexecution result !"#$%&'()*+,-.'()*+"#$%& !,.-*Support for parsing command line arguments(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNonekP2headroomParses command line arguments.22O !"#$%&''()*+,-./012234567899:;<=>?@@ABCDEFGHIJKKLMNOPQRRSTUVWXYZ[\\]^_`abcdefghijklmnopqrsstuvwxyz{{|}~~            !"#$%&'())*+,--./0123456789:;<7=>?@A7BCDEFGH . IJKLMNOPQR-STU.VWXheadroom-0.2.1.0-inplaceHeadroom.Command.UtilsHeadroom.RegexHeadroom.SerializationHeadroom.TemplateHeadroom.Types.EnumExtraHeadroom.TypesHeadroom.Template.MustacheHeadroom.FileSupportHeadroom.EmbeddedHeadroom.ConfigurationHeadroom.Command.GenHeadroom.FileTypeHeadroom.FileSystemHeadroom.Command.ReadersHeadroom.UI.Progress Headroom.MetaHeadroom.Command.RunHeadroom.Command.InitHeadroom.Command Headroom.UIPaths_headroom bootstrapcompile' joinPatternsmatch' aesonOptionsdropFieldPrefix symbolCaseprettyPrintYAMLTemplatetemplateExtensions parseTemplaterenderTemplate EnumExtra allValuesallValuesToText enumToText textToEnumPartialHeadersConfigphscCphscCppphscCss phscHaskellphscHtmlphscJavaphscJsphscRust phscScala phscShellPartialHeaderConfigphcFileExtensionsphcMarginAfterphcMarginBefore phcPutAfter phcPutBeforephcHeaderSyntaxPartialConfiguration pcRunMode pcSourcePathspcExcludedPathspcTemplatePaths pcVariablespcLicenseHeaders HeadersConfighscChscCpphscCss hscHaskellhscHtmlhscJavahscJshscRusthscScalahscShell HeaderConfighcFileExtensions hcMarginAfterhcMarginBefore hcPutAfter hcPutBeforehcHeaderSyntax ConfigurationcRunMode cSourcePathscExcludedPathscTemplatePaths cVariablescLicenseHeaders HeaderSyntax BlockComment LineCommentFileInfo fiFileTypefiHeaderConfig fiHeaderPos fiVariables LicenseTypeApache2BSD3GPL2GPL3MITMPL2FileTypeCCPPCSSHaskellHTMLJavaJSRustScalaShellCommandRunOptions croRunModecroSourcePathscroExcludedPathscroTemplatePaths croVariablescroDebug croDryRunCommandInitOptionscioSourcePathscioLicenseTypeCommandGenOptions cgoGenModeCommandRunGenInit TemplateErrorMissingVariables ParseErrorConfigurationErrorInvalidVariableMixedHeaderSyntaxNoFileExtensionsNoHeaderSyntax NoMarginAfterNoMarginBefore NoPutAfter NoPutBefore NoRunMode NoSourcePathsNoExcludedPathsNoTemplatePaths NoVariablesCommandInitErrorAppConfigAlreadyExistsNoProvidedSourcePathsNoSupportedFileTypeCommandGenErrorNoGenModeSelectedApplicationErrorGenMode GenConfigFile GenLicenseRunModeAddDropReplace$fFromJSONRunMode$fExceptionApplicationError$fFromJSONBlockComment'$fFromJSONLineComment'$fMonoidPartialHeaderConfig$fSemigroupPartialHeaderConfig$fFromJSONPartialHeaderConfig$fMonoidPartialHeadersConfig$fSemigroupPartialHeadersConfig$fFromJSONPartialHeadersConfig$fMonoidPartialConfiguration$fSemigroupPartialConfiguration$fFromJSONPartialConfiguration $fEqRunMode $fShowRunMode$fEqCommandGenError$fShowCommandGenError$fEqCommandInitError$fShowCommandInitError$fEqTemplateError$fShowTemplateError$fEqCommandRunOptions$fShowCommandRunOptions$fBoundedFileType$fEnumFileType$fEnumExtraFileType $fEqFileType $fOrdFileType$fShowFileType$fEqConfigurationError$fShowConfigurationError$fEqApplicationError$fShowApplicationError$fBoundedLicenseType$fEnumLicenseType$fEnumExtraLicenseType$fEqLicenseType$fOrdLicenseType$fShowLicenseType$fShowCommandInitOptions $fShowCommand $fEqGenMode $fShowGenMode$fShowCommandGenOptions$fEqHeaderSyntax$fShowHeaderSyntax$fEqHeaderConfig$fShowHeaderConfig $fEqFileInfo$fShowFileInfo$fEqHeadersConfig$fShowHeadersConfig$fEqConfiguration$fShowConfiguration$fEqBlockComment'$fGenericBlockComment'$fShowBlockComment'$fEqLineComment'$fGenericLineComment'$fShowLineComment'$fEqPartialHeaderConfig$fGenericPartialHeaderConfig$fShowPartialHeaderConfig$fEqPartialHeadersConfig$fGenericPartialHeadersConfig$fShowPartialHeadersConfig$fEqPartialConfiguration$fGenericPartialConfiguration$fShowPartialConfigurationMustache$fTemplateMustache$fShowMustacheextractFileInfo addHeader dropHeader replaceHeader findHeaderfindBlockHeaderfindLineHeader firstMatching lastMatching splitInputconfigFileStub defaultConfiglicenseTemplateloadConfigurationparseConfigurationparseVariablesmakeConfigurationmakeHeadersConfigmakeHeaderConfig parseGenMode commandGen$fHasLogFuncEnv fileTypeByExtlistExtensionsconfigByFileTypenlft-0.2.12.1-49d14610UnliftIO.DirectorycreateDirectory doesFileExistgetCurrentDirectory findFilesfindFilesByExtsfindFilesByTypes listFiles fileExtensionloadFile excludePaths licenseReaderlicenseTypeReaderparseLicenseAndFileTypeProgresszipWithProgress$fDisplayProgress $fEqProgress$fShowProgress TemplateType buildVersion productDesc productInfo productNamewebsite commandRun$fHasLogFuncStartupEnv$fHasConfigurationEnv$fHasRunOptionsStartupEnv$fHasRunOptionsEnv $fHasEnvEnv$fHasEnvStartupEnvHasPathspathsLHasInitOptions initOptionsLPaths pCurrentDir pConfigFile pTemplatesDirEnv envLogFuncenvInitOptionsenvPaths commandInitfindSupportedFileTypesdoesAppConfigExist$fHasInitOptionsEnv $fHasPathsEnv commandParserpcr-lght-0.4.1.0-dd5c983dText.Regex.PCRE.Lightcompile text-1.2.4.0Data.Text.InternalTextText.Regex.PCRE.Light.Baseutf8base GHC.MaybeNothingText.Regex.PCRE.Light.Char8match LineComment' lcPrefixedBy BlockComment' bcStartsWith bcEndsWith envGenOptionsversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName HasRunOptionsenvEnvenvConfiguration StartupEnv envRunOptionsmakeTemplatesDir