小编dia*_*rov的帖子

Go模块,私有仓库和gopath

我们正在将内部代码库从dep依赖项管理器转换为go模块(vgo或使用go1.11.2内置)。假设我们有这样的代码:

$ GOPATH / src / mycompany / myprogram / main.go:

package main

import (
        "fmt"
        lib "mycompany/mylib" )

func main() {
        fmt.Println("2+3=", lib.add(2, 3)) 
}
Run Code Online (Sandbox Code Playgroud)

$ GOPATH / src / mycompany / myprogram / go.mod:

module mycompany/myprogram
Run Code Online (Sandbox Code Playgroud)

(它没有任何依赖关系;我们的实际代码中有)。

$ GOPATH / src / mycompany / mylib / lib.go:

package mylib

func Add(x int, y int) int {
        return x + y
}
Run Code Online (Sandbox Code Playgroud)

我没有将此代码模块化。不管我是否做都不重要。

这些是简单的示例,但是我们的内部代码遵循与历史上类似的结构。

由于这些目录位于Gopath上,因此export GO111MODULE=auto仍可以像以前一样进行构建,并且可以正常工作(未使用模块,因为我们位于gopath上)。但是,设置后,export GO111MODULE=on我立即收到错误消息:

build mycompany/myprogram: cannot find …
Run Code Online (Sandbox Code Playgroud)

go go-modules

9
推荐指数
3
解决办法
8231
查看次数

递归搜索目录中所有与Haskell中的名称条件匹配的文件

我在Haskell相对缺乏经验,我想改进,所以对于我的学习项目,我有以下要求:

  • 我想从指定的顶级目录开始搜索,不一定是绝对路径.
  • 我想找到给定扩展名的所有文件.md.
  • 我想不要搜索隐藏的目录toplevel/.excluded.
  • 我希望能够忽略像gedit产生的隐藏文件.filename.md.swp.
  • 我希望最终得到一个完整的文件列表作为我的功能的结果.

我搜遍了所有的SO.这是我到目前为止所拥有的:

import qualified System.FilePath.Find as SFF
import qualified Filesystem.Path.CurrentOS as FP

srcFolderName = "src"
outFolderName = "output"
resFolderName = "res"

ffNotHidden :: SFF.FindClause Bool
ffNotHidden = SFF.fileName SFF./~? ".?*"

ffIsMD :: SFF.FindClause Bool
ffIsMD = SFF.extension SFF.==? ".md" SFF.&&? SFF.fileName SFF./~? ".?*"

findMarkdownSources :: FilePath -> IO [FilePath]
findMarkdownSources filePath = do
    paths <- SFF.find ffNotHidden ffIsMD filePath
    return paths
Run Code Online (Sandbox Code Playgroud)

这不起作用.在"findMarkdownSources"中进行printf风格的调试,我可以验证filePath是否正确,例如"/home/user/testdata"(打印包含",如果告诉你的话).列表paths总是空的.我绝对肯定目录中有markdown文件我已指定(find/path/to/dir -name"*.md"找到它们).

因此,我有一些具体的问题.

  1. 有没有理由(过滤器不正确),例如,为什么这段代码不起作用? …

file-extension haskell filepath

6
推荐指数
1
解决办法
633
查看次数

标签 统计

file-extension ×1

filepath ×1

go ×1

go-modules ×1

haskell ×1