uZlz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportable Safe-Inferred=Monad type with build base directory and build configuration.Build configuration typeSpecify build dirName of debian directory-Exclude directories to setup source directory'Type to specify build working directory'Type to specify base directory filepathAction type with trace flagRun  monad  bracket for  monad  bracket_ for  monad 0Command string trace print along with trace flag /Output string trace print along with trace flag Put log stinrg with flush.'Use current directory as base directory)Use specified directory as base directory;Use relative path from base-dir as build workding directory-Use absolute path as build workding directoryzFold build dirDefault configuration Lift from  monad into monad with  configuration.Run  configuration monad bracket for  monad bracket_ for  monadGet base directory in  monadGet build configuration in  monadGet build working directory in  monad{Show  is relative or absolute$|}~ z{  |}~ z{2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportableNone Find .cabal fileParse .cabal file%Hackage name and version string from Hackage name string from Hackage version string from ,Call cabal library defaultMain like Setup.hs 0Cabal library defaultMain with sub-command clean!4Cabal library defaultMain with sub-command configure"0Cabal library defaultMain with sub-command sdist#0Cabal library defaultMain with sub-command build$2Cabal library defaultMain with sub-command install%3Cabal library defaultMain with sub-command register !"#$%  !"#$%  "!#$% !"#$%2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportable Safe-Inferred&Debian short name generate rule);Hackage name and version type with debian short name. e.g. src-ext.*Hackage version type+Make *,Make *- Extract hackage version numbers..Make )/Get package name of )0Get version of )1Get debian short name of )2 Generate )- type from package name and version using &3/Make debian short name from package name using &4 Package name string with version5Package archive basename6Package archive pathname7+Debian library binary package names for GHC8,Debian library document package name for GHC9$Debian library package names for GHC&'()*+,-./012Rule flag to generate namesHackage name stringVersion of hackageResult hackage meta info3Rule flag to generate name)Debian source name or Hackage name stringODebian source package name and short name like ("haskell-src-exts", "src-exts")456789&'()*+,-./0123456789*,+-)./012&('3456789&(')*+,-./01234567892014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportable Safe-Inferred:&Debian source package type for Haskell;-Debian source package type, name with version<Version type for Debian=)Make deebian version from hackage version>Version without debian revision?Is debian-native or not@"Try to read debian package versionAMake ;BSource package name of ;CDebian version of ;DVersion without debian revisionEIs debian-native or notF Original source archive basenameGDebian native archive basenameHSource directory basenameI Try to make * from ;JTry to generate ; from debian changelog stringK) meta-info of :L#Debian source package meta-info of :M Generate :4 type from debian package name and version using &N Generate :/ with hackage name and debian package meta-info%:;<=>?@ABCDEFGHIJ!dpkg-parsechangelog result stringSource structureKLMHackage name stringVersion of hackageDebian revision StringResult structureNHackage name stringDebian package meta infoResult:;<=>?@ABCDEFGHIJKLMN<=@>?;ABCDEFGHIJ:KLMN!:;<=>?@ABCDEFGHIJKLMN2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportable Safe-Inferred)&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportable Safe-InferredOBuild mode, all or binary onlyU9Run command without shell and get standard output string.VRun command without shellWRun command with shellXChange directory actionY'Action to get current working directoryZCreate directory if missing[Rename directory action. e.g. renameDirectory from to\Rename file action. e.g. renameFile from to]Confirm filepath using ls command^Unpack .tar.gz under directory._#Unpack .tar.gz under archive place.`3Pack directory into .tar.gz under working directoryaAPack directory into same location .tar.gz under working directoryb$Run action under specified directoryc Just call  cabal-debian commanddCall  cabal-debian" command under specified directoryeQuery debian package versionf1Read debian changelog file and try to parse into ;gCall debuild5 under specified directory, with command line optionsh9Install packages under specified source package directoryiBuild package using debuild under specified directoryjClean and build package using debuild under specified directorykDRemove ghc library packages under specified source package directory"OPQRSTUVWXYZ[\]^_`abcdefghijkOPQRSTUVWXYZ[\]^_`abcdefghijkXYZ[\]^_`acdefghOTSRQPijkbUVWOTSRQPUVWXYZ[\]^_`abcdefghijk2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportableNonelRun Bulid" action under specified directory.mRun  action under base-directory.nRemove build-directory. Take debian-directory name from  action context.o'Take original source archive name from  action context.p,Take debian native source archive name from  action context.qTake source directory from  action context.rMAction to copy debian directory from base-directory into specified directory.sXSetup source directory and original source archive under build-directory using rsync.t]Setup native source directory and native source archive under build-directory using rsync.u1Setup debian source directory and source archive.v8Setup original source directory and archive using Cabal.w/Setup source directory and archive using Cabal.x@Setup source directory and archive using Cabal and cabal-debian.y1On the fly setup of source directory and archive.lmnopqrstuvwxylmnopqrstuvwxyopqlmnrstuvwxylmnopqrstuvwxy2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalportableNoneN  !"#$%OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy      !"#$%&'()*+,-./01234567&'89:%;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 23@Adebian-build-0.4.0.1Debian.Package.Build.MonadDebian.Package.Build.CabalDebian.Package.Data.HackageDebian.Package.Data.SourceDebian.Package.Build.CommandDebian.Package.Build.SequenceDebian.Package.DataDebian.Package.BuildBuildConfigbuildDir debianDirNamesourceExcludesBuildDirBaseDirTracerunTrace bracketTrace bracketTrace_ traceCommandtraceOutputLogbaseDirCurrentbaseDirSpecifybuildDirRelativebuildDirAbsolute defaultConfig liftTracerunBuild bracketBuild bracketBuild_ askBaseDir askConfig askBuildDirfindDescriptionFileparsePackageDescriptionhackageLongName hackageNamehackageVersionsetupCmdclean configuresdistbuildinstallregisterNameRuleSimpleSuggestHackageHackageVersionmkHackageVersion'mkHackageVersionhackageVersionNumbers mkHackagedebianShortNamemkHackageDefaultdebianNamesFromSourceNamehackageArchiveNamehackageArchiveghcLibraryBinPackagesghcLibraryDocPackageghcLibraryPackagesHaskellPackageSource DebianVersionversionFromHackageVersion origVersion' isNative'readDebianVersionmkSource sourceNameversion origVersionisNativeorigArchiveNamenativeArchiveName sourceDirNamederiveHackageVersionparseChangeLoghackagepackagehaskellPackageDefaulthaskellPackageFromPackage BuildModeIndepDepSrcBinAll readProcess' rawSystem'system'chdirpwdcreateDirectoryIfMissingrenameDirectory renameFile confirmPath unpackInDirunpack packInDir' packInDirwithCurrentDir' cabalDebian' cabalDebianpackageVersiondpkgParseChangeLogdebuilddebi buildPackagerebuildremoveGhcLibrarywithCurrentDirwithBaseCurrentDirremoveBuildDir origArchive nativeArchive sourceDir copyDebianDirrsyncGenOrigSourcesrsyncGenNativeSourcesrsyncGenSourcescabalGenOrigSourcescabalGenSourcescabalAutogenSources genSources unBuildDir$fShowBuildDir unBaseDir readerBracket toBracket_traceIOtprintCabal-1.18.1.3Distribution.PackageDescriptionPackageDescription _testDotCabalsetupdefaultHackageSrcPrefixdistDir$fReadHackageVersion$fShowHackageVersionDebianNonNative DebianNativeParser runParserdebianNativeVersiondebianNonNativeVersionlexWord returnParsedreturnParsedVersionreturnParsedNMUparseDebianVersion readMaybe'$fReadDebianVersion$fShowDebianVersion splitCommand handleExit renameMsgrundebuild'debianDirName' getBaseDir getBuildDir withBuildDirrsyncGenOrigSourceDircabalGenArchivecabalGenOrigArchivecabalAutogenDebianDirfindDebianChangeLogfindCabalDescription