📂 FileMgr
📍
/
opt
/
golang
/
1.22.0
/
src
/
cmd
/
go
/
testdata
✏️ /
⬅ Kembali
// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build ignore // +build ignore // Savedir archives a directory tree as a txtar archive printed to standard output. // // Usage: // // go run savedir.go /path/to/dir >saved.txt // // Typically the tree is later extracted during a test with tg.extract("testdata/saved.txt"). package main import ( "cmd/go/internal/str" "flag" "fmt" "internal/txtar" "io/fs" "log" "os" "path/filepath" "strings" "unicode/utf8" ) func usage() { fmt.Fprintf(os.Stderr, "usage: go run savedir.go dir >saved.txt\n") os.Exit(2) } const goCmd = "vgo" func main() { flag.Usage = usage flag.Parse() if flag.NArg() != 1 { usage() } log.SetPrefix("savedir: ") log.SetFlags(0) dir := flag.Arg(0) a := new(txtar.Archive) dir = filepath.Clean(dir) filepath.WalkDir(dir, func(path string, info fs.DirEntry, err error) error { if path == dir { return nil } name := info.Name() if strings.HasPrefix(name, ".") { if info.IsDir() { return filepath.SkipDir } return nil } if !info.Type().IsRegular() { return nil } data, err := os.ReadFile(path) if err != nil { log.Fatal(err) } if !utf8.Valid(data) { log.Printf("%s: ignoring invalid UTF-8 data", path) return nil } a.Files = append(a.Files, txtar.File{Name: str.TrimFilePathPrefix(path, dir), Data: data}) return nil }) data := txtar.Format(a) os.Stdout.Write(data) }
💾 Simpan
Batal
⬅ go
6 item
Nama
Tipe
Ukuran
Diubah
Aksi
📁
mod
dir
—
2024-02-02 18:09
📂 Buka
✏️ Rename
🗑
📁
script
dir
—
2024-02-02 18:09
📂 Buka
✏️ Rename
🗑
📁
vcstest
dir
—
2024-02-02 18:09
📂 Buka
✏️ Rename
🗑
🔵
addmod.go
go
3.5 KB
2024-02-02 18:09
✏️
👁️
🔤
🗑
🔵
savedir.go
go
1.5 KB
2024-02-02 18:09
✏️
👁️
🔤
🗑
📝
vendormod.txt
txt
2.3 KB
2024-02-02 18:09
✏️
👁️
🔤
🗑
✏️ Rename
Nama Baru
Simpan
Batal