diff --git a/base/nfs/dir.go b/base/nfs/dir.go index a1b48296..193ac134 100644 --- a/base/nfs/dir.go +++ b/base/nfs/dir.go @@ -30,6 +30,13 @@ func _dir_list(m *ice.Message, root string, name string, level int, deep bool, d } name = path.Dir(name) } + for i := 0; i < len(fs)-1; i++ { + for j := i + 1; j < len(fs); j++ { + if fs[i].Name() > fs[j].Name() { + fs[i], fs[j] = fs[j], fs[i] + } + } + } for _, f := range fs { if f.Name() == ice.PT || f.Name() == ".." { diff --git a/core/code/binpack.go b/core/code/binpack.go index ccd8784f..89fb79fd 100644 --- a/core/code/binpack.go +++ b/core/code/binpack.go @@ -40,7 +40,7 @@ func _pack_dir(m *ice.Message, pack *os.File, dir string) { m.Option(nfs.DIR_TYPE, nfs.CAT) m.Option(nfs.DIR_ROOT, dir) - m.Cmd(nfs.DIR, "./").Table(func(index int, value map[string]string, head []string) { + m.Cmd(nfs.DIR, "./").Sort(kit.MDB_PATH).Table(func(index int, value map[string]string, head []string) { if path.Base(value[kit.MDB_PATH]) == "binpack.go" { return } @@ -64,7 +64,7 @@ func _pack_volcanos(m *ice.Message, pack *os.File, dir string) { pack.WriteString(fmt.Sprintf(" \"/%s\": %s,\n", k, _pack_file(m, path.Join(dir, k)))) } for _, k := range []string{"lib", "page", "panel", "plugin"} { - m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) { + m.Cmd(nfs.DIR, k).Sort(kit.MDB_PATH).Table(func(index int, value map[string]string, head []string) { pack.WriteString(fmt.Sprintf(" \"/%s\": %s,\n", value[kit.MDB_PATH], _pack_file(m, path.Join(dir, value[kit.MDB_PATH])))) }) @@ -74,7 +74,6 @@ func _pack_volcanos(m *ice.Message, pack *os.File, dir string) { func _pack_ctx(m *ice.Message, pack *os.File) { _pack_dir(m, pack, ice.SRC_HELP) _pack_dir(m, pack, ice.SRC) - _pack_write(pack) } const BINPACK = "binpack"