#N=0*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()+Shared code for individual command handlers(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneaheadroom 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,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 experimentalPOSIXNone,headroom@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 extensionsheadroomname of the template (optional)headroomraw template textheadroomparsed templateheadroomvalues of variables to replaceheadroomparsed template to renderheadroomrendered template text"Extra functionality for enum types(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneX>@ 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_}headroom)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 5.headroom%list of file extensions (without dot)headroom)number of empty lines to put after headerheadroom*number of empty lines to put before headerheadroomregexp' 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 =.$headroom mode of the run command%headroompaths to source code files&headroompaths to template files'headroomvariable values for templates(headroom configuration of license headers*headroom-Internal representation of the line style of D.+headroom!prefix of the comment line (e.g. //),headroom2Internal representation of block comment style of D.-headroomstarting pattern (e.g. /*).headroomending pattern (e.g. */))headroom Group of 5) configurations for supported file types.+headroomconfiguration for C programming language,headroomconfiguration for C++ programming language-headroomconfiguration for CSS.headroomconfiguration for Haskell programming language/headroomconfiguration for HTML0headroomconfiguration for Java programming language1headroomconfiguration for  JavaScript programming language2headroomconfiguration for Rust programming language3headroomconfiguration for Scala programming language4headroomconfiguration for Shell5headroom*Configuration for specific license header.7headroom%list of file extensions (without dot)8headroom)number of empty lines to put after header9headroom*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=headroomApplication configuration.?headroom mode of the run command@headroompaths to source code filesAheadroompaths to template filesBheadroomvariable values for templatesCheadroom configuration of license headersDheadroom%Syntax of the license header comment.Eheadroom(block (multi-line) comment syntax (e.g. * *)Fheadroom!single line comment syntax (e.g. //)Gheadroom3Info extracted about the concrete source code file.Iheadroomtype of the fileJheadroom configuration for license headerKheadroom#position of existing license headerLheadroomadditional extracted variablesMheadroom&Supported type of open source license.Nheadroom support for  Apache-2.0 licenseOheadroom support for  BSD-3-Clause licensePheadroom support for GNU GPL2 licenseQheadroom support for GNU GPL3 licenseRheadroom support for MIT licenseSheadroom support for MPL2 licenseTheadroom#Supported type of source code file.Uheadroom support for C programming languageVheadroom support for C++ programming languageWheadroom support for CSSXheadroom support for Haskell programming languageYheadroom support for HTMLZheadroom support for Java programming language[headroom support for  JavaScript programming language\headroom support for Rust programming language]headroom support for Scala programming language^headroom support for Shell_headroomOptions for the run command.aheadroomused Run command modebheadroomsource code file pathscheadroomtemplate file pathsdheadroom raw variableseheadroomwhether to run in debug modefheadroomOptions for the init command.hheadroompaths to source code filesiheadroom license typejheadroomOptions for the gen command.lheadroom selected modemheadroomApplication command.nheadroomrun commandoheadroomgen commandpheadroominit commandqheadroom!Error during processing template.rheadroommissing variable valuessheadroomerror parsing raw template texttheadroom&Error during processing configuration.uheadroominvalid variable input (as  key=value)vheadroomillegal configuration for Dwheadroomno configuration for file-extensionsxheadroom"no configuration for header syntaxyheadroomno configuration for  margin-afterzheadroomno configuration for  margin-before{headroomno configuration for  put-after|headroomno configuration for  put-before}headroomno configuration for run-mode~headroomno configuration for  source-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[\]^_`abcdefghijklmopnqsrtuvwxyz{|}~=>?@ABC56789:;<)*+,-./01234"#$%&'( !DEFmopnjklfghi_`abcdetuvwxyz{|}~qsrMNOPQRSTUVWXYZ[\]^GHIJKLImplementation of Mustache template support(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone_`VheadroomThe Mustache template.headroom Support for Mustache templates.License header manipulation(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone"#D 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 G6. Does nothing if any header is already present, use  if you need to override it.headroom*Drops header at position specified by the G< from the given text. Does nothing if no header is present.headroom6Replaces existing header at position specified by the G( 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 D specified in given 5., 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).QfirstMatching (compile "^foo" [utf8]) ["some text", "foo bar", "foo baz", "last"]Just 1headroom,Finds very last line that matches the given regex (numbered from zero).PlastMatching (compile "^foo" [utf8]) ["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 experimentalPOSIXNoneheadroomContent 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"#9headroom6Loads 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 = from provided " (if valid).headroom Makes full ) from provided  (if valid).headroom Makes full 5 from provided  (if valid).headroompath to YAML configuration fileheadroomparsed configurationheadroomraw input to parseheadroom parsed application configurationheadroomlist of raw variablesheadroomparsed variablesheadroomsource "headroomfull =headroomsource headroomfull )headroom4determines for which file type this configuration isheadroomsource headroomfull 5 Handler for the gen command.(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone_/headroomlogging function0headroomoptionsheadroomParses ( from combination of options from given m.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"#k"headroomReturns TK for given file extension (without dot), using configured values from the ).headroom/Lists all recognized file extensions for given T$, using configured values from the ).headroomReturns the proper 5 for the given T, selected from the ).headroomlicense headers configurationheadroomfile extension (without dot)headroomfound Theadroomlicense headers configurationheadroomT for which to list extensionsheadroom#list of appropriate file extensionsheadroomlicense headers configurationheadroom selected Theadroom appropriate 5 +Operations related to files and file system(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone.headroomFReturns file extension for given path (if file), or nothing otherwise.%fileExtension "path/to/some/file.txt" Just "txt"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.headroom$Loads file content in UTF8 encoding.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 content Custom readers for optparse-applicative library(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNonekheadroomReader for tuple of M and T.headroom Reader for M.headroomParses M and T& 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 experimentalPOSIXNoneOheadroomSProgress 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 experimentalPOSIXNone!Safe!J12345678)Application metadata (name, vendor, etc.)(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNone'headroom5Type 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"#Pk/9headroomEnvironment value with Init command options.:headroomFull RIO environment for the Run command.;headroomstartup RIO environment<headroomapplication configuration=headroomInitial RIO startup environment for the Run command.>headroomlogging function?headroomoptions headroom Handler for Run command. headroomRun command optionsheadroomexecution result  Handler for the init command(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNoneP_k9headroomEnvironment 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.@headroom%Creates directory for template files.#headroominit command optionsheadroomexecution result !"#$% !"#%$*Support for parsing command line arguments(c) 2019-2020 Vaclav SvejcarBSD-3vaclav.svejcar@gmail.com experimentalPOSIXNonek=$)headroomParses command line arguments.))A !"##$%&'()*+,-../01234556789:;;<=>?@ABCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_`abcdefghijklmmnopqrsstuvvwxyz{|}~|                !"##$%&'()*+,-./01 $ 23456789:;#<=>$?@Aheadroom-0.2.0.0-inplaceHeadroom.Command.UtilsHeadroom.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 bootstrap aesonOptionsdropFieldPrefix symbolCaseprettyPrintYAMLTemplatetemplateExtensions parseTemplaterenderTemplate EnumExtra allValuesallValuesToText enumToText textToEnumPartialHeadersConfigphscCphscCppphscCss phscHaskellphscHtmlphscJavaphscJsphscRust phscScala phscShellPartialHeaderConfigphcFileExtensionsphcMarginAfterphcMarginBefore phcPutAfter phcPutBeforephcHeaderSyntaxPartialConfiguration pcRunMode pcSourcePathspcTemplatePaths pcVariablespcLicenseHeaders HeadersConfighscChscCpphscCss hscHaskellhscHtmlhscJavahscJshscRusthscScalahscShell HeaderConfighcFileExtensions hcMarginAfterhcMarginBefore hcPutAfter hcPutBeforehcHeaderSyntax ConfigurationcRunMode cSourcePathscTemplatePaths cVariablescLicenseHeaders HeaderSyntax BlockComment LineCommentFileInfo fiFileTypefiHeaderConfig fiHeaderPos fiVariables LicenseTypeApache2BSD3GPL2GPL3MITMPL2FileTypeCCPPCSSHaskellHTMLJavaJSRustScalaShellCommandRunOptions croRunModecroSourcePathscroTemplatePaths croVariablescroDebugCommandInitOptionscioSourcePathscioLicenseTypeCommandGenOptions cgoGenModeCommandRunGenInit TemplateErrorMissingVariables ParseErrorConfigurationErrorInvalidVariableMixedHeaderSyntaxNoFileExtensionsNoHeaderSyntax NoMarginAfterNoMarginBefore NoPutAfter NoPutBefore NoRunMode NoSourcePathsNoTemplatePaths 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 fileExtension findFilesfindFilesByExtsfindFilesByTypes listFilesloadFile licenseReaderlicenseTypeReaderparseLicenseAndFileTypeProgresszipWithProgress$fDisplayProgress $fEqProgress$fShowProgress TemplateType buildVersion productDesc productInfo productNamewebsite commandRun$fHasLogFuncStartupEnv$fHasConfigurationEnv$fHasRunOptionsStartupEnv$fHasRunOptionsEnv $fHasEnvEnv$fHasEnvStartupEnvHasPathspathsLHasInitOptions initOptionsLPaths pCurrentDir pConfigFile pTemplatesDirEnv envLogFuncenvInitOptionsenvPaths commandInitfindSupportedFileTypesdoesAppConfigExist$fHasInitOptionsEnv $fHasPathsEnv commandParser LineComment' lcPrefixedBy BlockComment' bcStartsWith bcEndsWith envGenOptionsversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName HasRunOptionsenvEnvenvConfiguration StartupEnv envRunOptionsmakeTemplatesDir