diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-06-07 13:47:02 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-06-07 13:47:37 +0200 |
commit | e0f57ee1a1757c6c572a5e0054dd2f03a4670bed (patch) | |
tree | 8a4dd96802cd4eff68f58319249c6f7a789ec7ec | |
parent | 82a75635f7c3500002e4e5a8ca91c1c02af8f5bb (diff) | |
download | Nim-e0f57ee1a1757c6c572a5e0054dd2f03a4670bed.tar.gz |
finally make niminst smart about which files are important
-rw-r--r-- | compiler/installer.ini | 168 | ||||
-rw-r--r-- | koch.nim | 4 | ||||
-rw-r--r-- | tools/niminst/niminst.nim | 49 |
3 files changed, 42 insertions, 179 deletions
diff --git a/compiler/installer.ini b/compiler/installer.ini index b10fa81ab..6239d4f6e 100644 --- a/compiler/installer.ini +++ b/compiler/installer.ini @@ -60,28 +60,9 @@ Files: "icons/koch.rc" Files: "icons/koch.res" Files: "icons/koch_icon.o" -Files: "compiler/readme.txt" -Files: "compiler/installer.ini" -Files: "compiler/*.cfg" -Files: "compiler/*.nim" -Files: "doc/*.txt" -Files: "doc/*.rst" -Files: "doc/manual/*.txt" -Files: "doc/*.nim" -Files: "doc/*.cfg" -Files: "compiler/nimfix/*.nim" -Files: "compiler/nimfix/*.cfg" -Files: "compiler/nimsuggest/*.nim" -Files: "compiler/nimsuggest/*.cfg" -Files: "compiler/plugins/locals/*.nim" -Files: "compiler/plugins/*.nim" -Files: "tools/*.nim" -Files: "tools/*.cfg" -Files: "tools/*.tmpl" -Files: "tools/niminst/*.nim" -Files: "tools/niminst/*.cfg" -Files: "tools/niminst/*.tmpl" -Files: "tools/niminst/*.nsh" +Files: "compiler" +Files: "doc" +Files: "tools" Files: "web/website.ini" Files: "web/*.nim" Files: "web/*.txt" @@ -90,150 +71,13 @@ Files: "bin/nimblepkg/*.nim" Files: "bin/nimblepkg/*.cfg" [Lib] -Files: "lib/nimbase.h" -Files: "lib/*.nim" -Files: "lib/*.cfg" -Files: "lib/*.nimble" - -Files: "lib/system/*.nim" -Files: "lib/core/*.nim" -Files: "lib/pure/*.nim" -Files: "lib/pure/*.cfg" -Files: "lib/pure/collections/*.nim" -Files: "lib/pure/concurrency/*.nim" -Files: "lib/pure/unidecode/*.nim" -Files: "lib/pure/concurrency/*.cfg" -Files: "lib/impure/*.nim" -Files: "lib/impure/nre/private/*.nim" -Files: "lib/wrappers/*.nim" -Files: "lib/arch/*.nim" - -Files: "lib/wrappers/readline/*.nim" -Files: "lib/wrappers/linenoise/*.nim" -Files: "lib/wrappers/linenoise/*.c" -Files: "lib/wrappers/linenoise/*.h" - -Files: "lib/windows/*.nim" -Files: "lib/posix/*.nim" -Files: "lib/js/*.nim" -Files: "lib/packages/docutils/*.nim" - -Files: "lib/deprecated/core/*.nim" -Files: "lib/deprecated/pure/*.nim" -Files: "lib/deprecated/pure/*.cfg" +Files: "lib" [Other] -Files: "examples/*.nim" -Files: "examples/c++iface/*.nim" -Files: "examples/objciface/*.nim" -Files: "examples/cross_calculator/" - -Files: "examples/*.html" -Files: "examples/*.txt" -Files: "examples/*.cfg" -Files: "examples/*.tmpl" - +Files: "examples" Files: "dist/nimble" -Files: "tests/actiontable/*.nim" -Files: "tests/alias/*.nim" -Files: "tests/ambsym/*.nim" -Files: "tests/array/*.nim" -Files: "tests/assign/*.nim" -Files: "tests/astoverload/*.nim" -Files: "tests/async/*.nim" -Files: "tests/benchmarks/*.nim" -Files: "tests/bind/*.nim" -Files: "tests/borrow/*.nim" -Files: "tests/casestmt/*.nim" -Files: "tests/ccgbugs/*.nim" -Files: "tests/clearmsg/*.nim" -Files: "tests/closure/*.nim" -Files: "tests/cnstseq/*.nim" -Files: "tests/collections/*.nim" -Files: "tests/compiles/*.nim" -Files: "tests/concat/*.nim" -Files: "tests/concepts/*.nim" -Files: "tests/constr/*.nim" -Files: "tests/constraints/*.nim" -Files: "tests/controlflow/*.nim" -Files: "tests/converter/*.nim" -Files: "tests/cpp/*.nim" -Files: "tests/defaultprocparam/*.nim" -Files: "tests/deprecated/*.nim" -Files: "tests/destructor/*.nim" -Files: "tests/dir with space/*.nim" -Files: "tests/discard/*.nim" -Files: "tests/distinct/*.nim" -Files: "tests/dll/*.nim" -Files: "tests/effects/*.nim" -Files: "tests/enum/*.nim" -Files: "tests/exception/*.nim" -Files: "tests/exprs/*.nim" -Files: "tests/fields/*.nim" -Files: "tests/float/*.nim" -Files: "tests/friends/*.nim" -Files: "tests/gc/*.nim" -Files: "tests/generics/*.nim" -Files: "tests/gensym/*.nim" -Files: "tests/global/*.nim" -Files: "tests/implicit/*.nim" -Files: "tests/init/*.nim" -Files: "tests/iter/*.nim" -Files: "tests/js/*.nim" -Files: "tests/js/*.cfg" -Files: "tests/let/*.nim" -Files: "tests/lexer/*.nim" -Files: "tests/lookups/*.nim" -Files: "tests/macros/*.nim" -Files: "tests/magics/*.nim" -Files: "tests/metatype/*.nim" -Files: "tests/method/*.nim" -Files: "tests/misc/*.nim" -Files: "tests/modules/*.nim" -Files: "tests/namedparams/*.nim" -Files: "tests/notnil/*.nim" -Files: "tests/objects/*.nim" -Files: "tests/objvariant/*.nim" -Files: "tests/openarray/*.nim" -Files: "tests/osproc/*.nim" -Files: "tests/overflw/*.nim" -Files: "tests/overload/*.nim" -Files: "tests/parallel/*.nim" -Files: "tests/parallel/*.cfg" -Files: "tests/parser/*.nim" -Files: "tests/pragmas/*.nim" -Files: "tests/proc/*.nim" -Files: "tests/procvar/*.nim" -Files: "tests/range/*.nim" -Files: "tests/rodfiles/*.nim" -Files: "tests/seq/*.nim" -Files: "tests/sets/*.nim" -Files: "tests/showoff/*.nim" -Files: "tests/specialops/*.nim" -Files: "tests/stdlib/*.nim" -Files: "tests/system/*.nim" -Files: "tests/template/*.nim" -Files: "tests/testament/*.nim" -Files: "tests/testdata/*.csv" -Files: "tests/testdata/*.html" -Files: "tests/testdata/*.json" -Files: "tests/testdata/*.txt" -Files: "tests/testdata/*.xml" -Files: "tests/threads/*.nim" -Files: "tests/threads/*.cfg" -Files: "tests/trmacros/*.nim" -Files: "tests/tuples/*.nim" -Files: "tests/typerel/*.nim" -Files: "tests/types/*.nim" -Files: "tests/usingstmt/*.nim" -Files: "tests/varres/*.nim" -Files: "tests/varstmt/*.nim" -Files: "tests/vm/*.nim" -Files: "tests/readme.txt" -Files: "tests/testament/css/*.css" -Files: "tests/testament/*.cfg" -Files: "lib/pure/unidecode/unidecode.dat" +Files: "tests" [Windows] Files: "bin/nim.exe" diff --git a/koch.nim b/koch.nim index 1807ca97a..3e893e841 100644 --- a/koch.nim +++ b/koch.nim @@ -112,7 +112,7 @@ proc csource(args: string) = proc bundleNimble() = if dirExists("dist/nimble/.git"): - exec("git --git-dir dist/nimble pull --rebase") + exec("git --git-dir dist/nimble/.git pull") else: exec("git clone https://github.com/nim-lang/nimble.git dist/nimble") let tags = execProcess("git --git-dir dist/nimble/.git tag -l v*").splitLines @@ -121,7 +121,7 @@ proc bundleNimble() = # now compile Nimble and copy it to $nim/bin for the installer.ini # to pick it up: exec(findNim() & " c dist/nimble/src/nimble.nim") - copyExe("dist/nimble/nimble".exe, "bin/nimble".exe) + copyExe("dist/nimble/src/nimble".exe, "bin/nimble".exe) proc zip(args: string) = bundleNimble() diff --git a/tools/niminst/niminst.nim b/tools/niminst/niminst.nim index 991789a08..8ff53bbe3 100644 --- a/tools/niminst/niminst.nim +++ b/tools/niminst/niminst.nim @@ -202,23 +202,41 @@ proc parseCmdLine(c: var ConfigData) = if c.infile.len == 0: quit(Usage) if c.mainfile.len == 0: c.mainfile = changeFileExt(c.infile, "nim") -proc walkDirRecursively(s: var seq[string], root: string) = +proc ignoreFile(f, root: string, preventHtml: bool): bool = + let (_, name, ext) = splitFile(f) + let html = if preventHtml: ".html" else: "" + let explicit = splitPath(root).tail + result = (ext in ["", ".exe", ".idx"] or + ext == html or name[0] == '.') and f != explicit + +proc walkDirRecursively(s: var seq[string], root: string, + preventHtml: bool) = + let tail = splitPath(root).tail + if tail == "nimcache" or tail[0] == '.': + return + let preventHtml = preventHtml or tail != "doc" for k, f in walkDir(root): - case k - of pcFile, pcLinkToFile: add(s, unixToNativePath(f)) - of pcDir: walkDirRecursively(s, f) - of pcLinkToDir: discard + if f[0] == '.' and root[0] != '.': + discard "skip .git directories etc" + else: + case k + of pcFile, pcLinkToFile: + if not ignoreFile(f, root, preventHtml): + add(s, unixToNativePath(f)) + of pcDir: + walkDirRecursively(s, f, preventHtml) + of pcLinkToDir: discard proc addFiles(s: var seq[string], patterns: seq[string]) = for p in items(patterns): if existsDir(p): - walkDirRecursively(s, p) + walkDirRecursively(s, p, true) else: var i = 0 for f in walkFiles(p): if existsDir(f): - walkDirRecursively(s, f) - else: + walkDirRecursively(s, f, false) + elif not ignoreFile(f, p, false): add(s, unixToNativePath(f)) inc(i) if i == 0: echo("[Warning] No file found that matches: " & p) @@ -613,13 +631,14 @@ proc xzDist(c: var ConfigData) = let nimbleFile = c.nimblePkgName & ".nimble" processFile(z, proj / nimbleFile, nimbleFile) - let oldDir = getCurrentDir() - setCurrentDir(tmpDir) - try: - if execShellCmd("XZ_OPT=-9 tar Jcf $1.tar.xz $1" % proj) != 0: - echo("External program failed") - finally: - setCurrentDir(oldDir) + when true: + let oldDir = getCurrentDir() + setCurrentDir(tmpDir) + try: + if execShellCmd("XZ_OPT=-9 tar Jcf $1.tar.xz $1" % proj) != 0: + echo("External program failed") + finally: + setCurrentDir(oldDir) # -- prepare build files for .deb creation |