# Copyright (C) Dominik Picheta. All rights reserved. # BSD License. Look at license.txt for more info. # # Various miscellaneous common types reside here, to avoid problems with # recursive imports when not defined(nimscript): import sets import version export version.NimbleError # TODO: Surely there is a better way? type BuildFailed* = object of NimbleError PackageInfo* = object myPath*: string ## The path of this .nimble file isNimScript*: bool ## Determines if this pkg info was read from a nims file isMinimal*: bool isInstalled*: bool ## Determines if the pkg this info belongs to is installed postHooks*: HashSet[string] ## Useful to know so that Nimble doesn't execHook unnecessarily preHooks*: HashSet[string] name*: string ## The version specified in the .nimble file.Assuming info is non-minimal, ## it will always be a non-special version such as '0.1.4' version*: string specialVersion*: string ## Either `myVersion` or a special version such as #head. author*: string description*: string license*: string skipDirs*: seq[string] skipFiles*: seq[string] skipExt*: seq[string] installDirs*: seq[string] installFiles*: seq[string] installExt*: seq[string] requires*: seq[PkgTuple] bin*: seq[string] binDir*: string srcDir*: string backend*: string ## Same as quit(QuitSuccess), but allows cleanup. NimbleQuit* = ref object of Exception proc raiseNimbleError*(msg: string, hint = "") = var exc = newException(NimbleError, msg) exc.hint = hint raise exc const nimbleVersion* = "0.8.0"