diff --git a/src/nimble.nim b/src/nimble.nim index f488e2c..9456e78 100644 --- a/src/nimble.nim +++ b/src/nimble.nim @@ -214,20 +214,13 @@ proc processDeps(pkginfo: PackageInfo, options: Options): seq[PackageInfo] = addRevDep(options.nimbleData, i, pkginfo) proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], - args: var seq[string], options: Options) = - doAssert(options.action.typ == actionBuild) - + args: var seq[string]) = ## Builds a package as specified by ``pkgInfo``. if pkgInfo.bin.len == 0: raise newException(NimbleError, "Nothing to build. Did you specify a module to build using the" & " `bin` key in your .nimble file?") let realDir = pkgInfo.getRealDir() - - cd realDir: - if not execHook(options, true): - raise newException(NimbleError, "Pre-hook prevented further execution.") - for path in paths: args.add("--path:\"" & path & "\" ") for bin in pkgInfo.bin: let outputOpt = "-o:\"" & pkgInfo.getOutputDir(bin) & "\"" @@ -251,17 +244,13 @@ proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], exc.hint = hint raise exc - cd realDir: - discard execHook(options, false) - -proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], forRelease: bool, - options: Options) = +proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], forRelease: bool) = var args: seq[string] if forRelease: args = @["-d:release"] else: args = @[] - buildFromDir(pkgInfo, paths, args, options) + buildFromDir(pkgInfo, paths, args) proc removePkgDir(dir: string, options: Options) = ## Removes files belonging to the package in ``dir``. @@ -336,7 +325,6 @@ proc installFromDir(dir: string, requestedVer: VersionRange, options: Options, ## to the packages this package depends on. ## The return value of this function is used by ## ``processDeps`` to gather a list of paths to pass to the nim compiler. - doAssert(options.action.typ == actionInstall) # Handle pre-`install` hook. if not options.depsOnly: @@ -368,9 +356,7 @@ proc installFromDir(dir: string, requestedVer: VersionRange, options: Options, # if the build fails then the old package will still be installed. if pkgInfo.bin.len > 0: let paths = result.deps.map(dep => dep.getRealDir()) - var optsCopy = options.briefClone() - optsCopy.action.typ = actionBuild - buildFromDir(pkgInfo, paths, true, optsCopy) + buildFromDir(pkgInfo, paths, true) let pkgDestDir = pkgInfo.getPkgDest(options) if existsDir(pkgDestDir) and existsFile(pkgDestDir / "nimblemeta.json"): @@ -484,14 +470,8 @@ proc getDownloadInfo*(pv: PkgTuple, options: Options, proc install(packages: seq[PkgTuple], options: Options, doPrompt = true): tuple[deps: seq[PackageInfo], pkg: PackageInfo] = - var optsCopy = options.briefClone() - optsCopy.action.typ = actionInstall - # Pass an empty seq here because we're executing `install` inside the package - # directory - optsCopy.action.packages = @[] - if packages == @[]: - result = installFromDir(getCurrentDir(), newVRAny(), optsCopy, "") + result = installFromDir(getCurrentDir(), newVRAny(), options, "") else: # Install each package. for pv in packages: @@ -500,7 +480,7 @@ proc install(packages: seq[PkgTuple], let (downloadDir, downloadVersion) = downloadPkg(url, pv.ver, meth, subdir, options) try: - result = installFromDir(downloadDir, pv.ver, optsCopy, url) + result = installFromDir(downloadDir, pv.ver, options, url) except BuildFailed: # The package failed to build. # Check if we tried building a tagged version of the package. @@ -527,7 +507,7 @@ proc build(options: Options) = let deps = processDeps(pkginfo, options) let paths = deps.map(dep => dep.getRealDir()) var args = options.action.compileOptions - buildFromDir(pkgInfo, paths, args, options) + buildFromDir(pkgInfo, paths, args) proc execBackend(options: Options) = let @@ -569,8 +549,7 @@ proc search(options: Options) = ## Searches for matches in ``options.action.search``. ## ## Searches are done in a case insensitive way making all strings lower case. - doAssert(options.action.typ == actionSearch) - + assert options.action.typ == actionSearch if options.action.search == @[]: raise newException(NimbleError, "Please specify a search string.") if needsRefresh(options): @@ -920,8 +899,6 @@ proc listTasks(options: Options) = nimscriptsupport.listTasks(nimbleFile, options) proc developFromDir(dir: string, options: Options) = - doAssert(options.action.typ == actionDevelop) - if options.depsOnly: raiseNimbleError("Cannot develop dependencies only.") @@ -1016,11 +993,6 @@ proc test(options: Options) = ## Executes all tests starting with 't' in the ``tests`` directory. ## Subdirectories are not walked. var files = toSeq(walkDir(getCurrentDir() / "tests")) - - if files.len < 1: - display("Warning:", "No tests found!", Warning, HighPriority) - return - files.sort((a, b) => cmp(a.path, b.path)) for file in files: diff --git a/src/nimblepkg/options.nim b/src/nimblepkg/options.nim index 749a4ed..83700e8 100644 --- a/src/nimblepkg/options.nim +++ b/src/nimblepkg/options.nim @@ -409,7 +409,5 @@ proc briefClone*(options: Options): Options = var newOptions = initOptions() newOptions.config = options.config newOptions.nimbleData = options.nimbleData - newOptions.nimbleDir = options.nimbleDir - newOptions.forcePrompts = options.forcePrompts newOptions.pkgInfoCache = options.pkgInfoCache return newOptions diff --git a/src/nimblepkg/version.nim b/src/nimblepkg/version.nim index ae85e99..d86e22c 100644 --- a/src/nimblepkg/version.nim +++ b/src/nimblepkg/version.nim @@ -189,7 +189,7 @@ proc parseVersionRange*(s: string): VersionRange = of ' ': # Make sure '0.9 8.03' is not allowed. - if version != "" and i < s.len - 1: + if version != "" and i < s.len: if s[i+1] in {'0'..'9', '.'}: raise newException(ParseVersionError, "Whitespace is not allowed in a version literal.")