github.com/knieriem/gointernal@v0.2.0-pre2/gen/setup.sh (about)

     1  #!/bin/sh
     2  
     3  set -e
     4  
     5  gopackages="\
     6  	lazyregexp\
     7  	testenv\
     8  	cfg\
     9  	execabs\
    10  	syscall/windows\
    11  	unsafeheader\
    12  "
    13  
    14  cmdintpkgs="\
    15  	browser\
    16  "
    17  
    18  cmdpkgs="\
    19  	quoted\
    20  "
    21  
    22  gocmdintpkgs="\
    23  	par\
    24  	lockedfile\
    25  	str\
    26  	web\
    27  	auth\
    28  "
    29  
    30  cliintpkgs="\
    31  	help/help.go\
    32  "
    33  
    34  clipkgs="\
    35  	main.go\
    36  "
    37  
    38  gocmdpackages="\
    39  	base/base.go\
    40  	base/flag.go\
    41  	cfg/cfg.go\
    42  	envcmd/env.go\
    43  	work/build.go\
    44  	\
    45  	modfetch/codehost\
    46  	modfetch/repo.go\
    47  	modfetch/coderepo.go\
    48  "
    49  
    50  modified="\
    51  	cmd/go/base/base.go\
    52  	cmd/go/base/flag.go\
    53  	cmd/go/cfg/cfg.go\
    54  	cmd/go/envcmd/env.go\
    55  	cmd/go/work/build.go\
    56  	\
    57  	cmd/cli/main.go\
    58  	cmd/cli/internal/help/help.go\
    59  "
    60  
    61  goroot=`go1.18.6 env GOROOT`
    62  
    63  copy() {
    64  	dest=$1
    65  	src=$2
    66  	shift
    67  	shift
    68  	mkdir $dest
    69  	(cd $goroot/src/$src && tar cf - $@) | (cd $dest && tar xf -)
    70  }
    71  
    72  msg() {
    73  	echo '*' $@
    74  }
    75  
    76  msg backup
    77  mkdir _prev
    78  mv internal _prev/internal
    79  mv cmd _prev/cmd
    80  
    81  msg import files from $goroot
    82  copy internal internal $gopackages
    83  copy cmd cmd/internal $cmdpkgs
    84  copy cmd/internal cmd/internal $cmdintpkgs
    85  copy cmd/go cmd/go/internal $gocmdpackages
    86  copy cmd/go/internal cmd/go/internal $gocmdintpkgs
    87  
    88  copy cmd/cli cmd/go $clipkgs
    89  copy cmd/cli/internal cmd/go/internal $cliintpkgs
    90  
    91  msg put original files of modified sources aside
    92  # save originals of modified sources
    93  mkdir -p _orig
    94  (tar cf - $modified) | (cd _orig && tar xf -)
    95  
    96  msg restore own modifications
    97  (cd _prev && tar cf - $modified) | tar xf -
    98  
    99  msg adjust modfetch/repo.go
   100  ed -s < gen/modfetch_repo.go.ed
   101  cp gen/_coderepo_ext.go cmd/go/modfetch/coderepo_ext.go
   102  
   103  msg adjust import paths, replace '"any"'
   104  for f in `find cmd internal -type f -name '*.go'`; do
   105  	mv $f $f,
   106  	sed -f gen/adjimports.sed <$f, >$f
   107  	rm -f $f,
   108  	gofmt -r 'any -> interface{}' -w $f
   109  done
   110  
   111  go fmt ./...