aboutsummaryrefslogtreecommitdiff
path: root/nix/builder/symlink/symlink.go
diff options
context:
space:
mode:
Diffstat (limited to 'nix/builder/symlink/symlink.go')
-rw-r--r--nix/builder/symlink/symlink.go110
1 files changed, 0 insertions, 110 deletions
diff --git a/nix/builder/symlink/symlink.go b/nix/builder/symlink/symlink.go
deleted file mode 100644
index 3dbb383..0000000
--- a/nix/builder/symlink/symlink.go
+++ /dev/null
@@ -1,110 +0,0 @@
-package main
-
-import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
- "sort"
-)
-
-type Package struct {
- GoPackagePath string `json:"-"`
- Version string `json:"version"`
- Hash string `json:"hash"`
- ReplacedPath string `json:"replaced,omitempty"`
-}
-
-// type Output struct {
-// SchemaVersion int `json:"schema"`
-// Mod map[string]*Package `json:"mod"`
-// }
-
-func main() {
-
- // var output Output
- sources := make(map[string]string)
- pkgs := make(map[string]*Package)
-
- {
- b, err := ioutil.ReadFile(os.Getenv("sourcesPath"))
- if err != nil {
- panic(err)
- }
-
- err = json.Unmarshal(b, &sources)
- if err != nil {
- panic(err)
- }
- }
-
- {
- b, err := ioutil.ReadFile(os.Getenv("jsonPath"))
- if err != nil {
- panic(err)
- }
-
- err = json.Unmarshal(b, &pkgs)
- if err != nil {
- panic(err)
- }
- }
-
- keys := make([]string, 0, len(pkgs))
- for key := range pkgs {
- keys = append(keys, key)
- }
- sort.Strings(keys)
-
- // Iterate, in reverse order
- for i := len(keys) - 1; i >= 0; i-- {
- key := keys[i]
- src := sources[key]
-
- paths := []string{key}
-
- for _, path := range paths {
-
- vendorDir := filepath.Join("vendor", filepath.Dir(path))
- if err := os.MkdirAll(vendorDir, 0755); err != nil {
- panic(err)
- }
-
- if _, err := os.Stat(filepath.Join("vendor", path)); err == nil {
- files, err := ioutil.ReadDir(src)
- if err != nil {
- panic(err)
- }
-
- for _, f := range files {
- innerSrc := filepath.Join(src, f.Name())
- dst := filepath.Join("vendor", path, f.Name())
- if err := os.Symlink(innerSrc, dst); err != nil {
- // assume it's an existing directory, try to link the directory content instead.
- // TODO should we do this recursively
- files, err := ioutil.ReadDir(innerSrc)
- if err != nil {
- panic(err)
- }
- for _, f := range files {
- if err := os.Symlink(filepath.Join(innerSrc, f.Name()), filepath.Join(dst, f.Name())); err != nil {
- fmt.Println("ignore symlink error", filepath.Join(innerSrc, f.Name()), filepath.Join(dst, f.Name()))
- }
- }
- }
- }
-
- continue
- }
-
- // If the file doesn't already exist, just create a simple symlink
- err := os.Symlink(src, filepath.Join("vendor", path))
- if err != nil {
- panic(err)
- }
-
- }
- }
-
-}