Merge branch 'fixups'
This commit is contained in:
		
						commit
						d14526059b
					
				
							
								
								
									
										44
									
								
								.github/scripts/test.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								.github/scripts/test.sh
									
									
									
									
										vendored
									
									
								
							@ -30,32 +30,32 @@ sha_sum "$(raw_eghcup --offline whereis ghcup)"
 | 
			
		||||
 | 
			
		||||
### Haskell test suite
 | 
			
		||||
 | 
			
		||||
./ghcup-test${ext}
 | 
			
		||||
./ghcup-test-optparse${ext}
 | 
			
		||||
rm ghcup-test${ext} ghcup-test-optparse${ext}
 | 
			
		||||
./"ghcup-test${ext}"
 | 
			
		||||
./"ghcup-test-optparse${ext}"
 | 
			
		||||
rm "ghcup-test${ext}" "ghcup-test-optparse${ext}"
 | 
			
		||||
 | 
			
		||||
### manual cli based testing
 | 
			
		||||
 | 
			
		||||
eghcup --numeric-version
 | 
			
		||||
 | 
			
		||||
eghcup install ghc ${GHC_VER}
 | 
			
		||||
eghcup unset ghc ${GHC_VER}
 | 
			
		||||
ls -lah "$(eghcup whereis -d ghc ${GHC_VER})"
 | 
			
		||||
[ "`$(eghcup whereis ghc ${GHC_VER}) --numeric-version`" = "${GHC_VER}" ]
 | 
			
		||||
[ "`eghcup run --ghc ${GHC_VER} -- ghc --numeric-version`" = "${GHC_VER}" ]
 | 
			
		||||
[ "`ghcup run --ghc ${GHC_VER} -- ghc -e 'Control.Monad.join (Control.Monad.fmap System.IO.putStr System.Environment.getExecutablePath)'`" = "`$(ghcup whereis ghc ${GHC_VER}) -e 'Control.Monad.join (Control.Monad.fmap System.IO.putStr System.Environment.getExecutablePath)'`" ]
 | 
			
		||||
eghcup set ghc ${GHC_VER}
 | 
			
		||||
eghcup install cabal ${CABAL_VER}
 | 
			
		||||
[ "`$(eghcup whereis cabal ${CABAL_VER}) --numeric-version`" = "${CABAL_VER}" ]
 | 
			
		||||
eghcup install ghc "${GHC_VER}"
 | 
			
		||||
eghcup unset ghc "${GHC_VER}"
 | 
			
		||||
ls -lah "$(eghcup whereis -d ghc "${GHC_VER}")"
 | 
			
		||||
[ "$($(eghcup whereis ghc "${GHC_VER}") --numeric-version)" = "${GHC_VER}" ]
 | 
			
		||||
[ "$(eghcup run -q --ghc "${GHC_VER}" -- ghc --numeric-version)" = "${GHC_VER}" ]
 | 
			
		||||
[ "$(ghcup run -q --ghc "${GHC_VER}" -- ghc -e 'Control.Monad.join (Control.Monad.fmap System.IO.putStr System.Environment.getExecutablePath)')" = "$($(ghcup whereis ghc "${GHC_VER}") -e 'Control.Monad.join (Control.Monad.fmap System.IO.putStr System.Environment.getExecutablePath)')" ]
 | 
			
		||||
eghcup set ghc "${GHC_VER}"
 | 
			
		||||
eghcup install cabal "${CABAL_VER}"
 | 
			
		||||
[ "$($(eghcup whereis cabal "${CABAL_VER}") --numeric-version)" = "${CABAL_VER}" ]
 | 
			
		||||
eghcup unset cabal
 | 
			
		||||
"$GHCUP_BIN"/cabal --version && exit 1 || echo yes
 | 
			
		||||
 | 
			
		||||
# make sure no cabal is set when running 'ghcup run' to check that PATH propagages properly
 | 
			
		||||
# https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/375
 | 
			
		||||
[ "`eghcup run --cabal ${CABAL_VER} -- cabal --numeric-version`" = "${CABAL_VER}" ]
 | 
			
		||||
eghcup set cabal ${CABAL_VER}
 | 
			
		||||
[ "$(eghcup run -q --cabal "${CABAL_VER}" -- cabal --numeric-version)" = "${CABAL_VER}" ]
 | 
			
		||||
eghcup set cabal "${CABAL_VER}"
 | 
			
		||||
 | 
			
		||||
[ "`$(eghcup whereis cabal ${CABAL_VER}) --numeric-version`" = "${CABAL_VER}" ]
 | 
			
		||||
[ "$($(eghcup whereis cabal "${CABAL_VER}") --numeric-version)" = "${CABAL_VER}" ]
 | 
			
		||||
 | 
			
		||||
if [ "${OS}" != "FreeBSD" ] ; then
 | 
			
		||||
	if [ "${ARCH}" = "64" ] && [ "${DISTRO}" != "Alpine" ] ; then
 | 
			
		||||
@ -85,10 +85,10 @@ eghcup list -t cabal
 | 
			
		||||
 | 
			
		||||
ghc_ver=$(ghc --numeric-version)
 | 
			
		||||
ghc --version
 | 
			
		||||
ghc-${ghc_ver} --version
 | 
			
		||||
"ghc-${ghc_ver}" --version
 | 
			
		||||
if [ "${OS}" != "Windows" ] ; then
 | 
			
		||||
		ghci --version
 | 
			
		||||
		ghci-${ghc_ver} --version
 | 
			
		||||
		"ghci-${ghc_ver}" --version
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -132,11 +132,11 @@ else
 | 
			
		||||
	eghcup --offline set 8.10.3
 | 
			
		||||
	eghcup set 8.10.3
 | 
			
		||||
	[ "$(ghc --numeric-version)" = "8.10.3" ]
 | 
			
		||||
	eghcup set ${GHC_VER}
 | 
			
		||||
	eghcup set "${GHC_VER}"
 | 
			
		||||
	[ "$(ghc --numeric-version)" = "${ghc_ver}" ]
 | 
			
		||||
	eghcup unset ghc
 | 
			
		||||
    "$GHCUP_BIN"/ghc --numeric-version && exit 1 || echo yes
 | 
			
		||||
	eghcup set ${GHC_VER}
 | 
			
		||||
	eghcup set "${GHC_VER}"
 | 
			
		||||
	eghcup --offline rm 8.10.3
 | 
			
		||||
	[ "$(ghc --numeric-version)" = "${ghc_ver}" ]
 | 
			
		||||
 | 
			
		||||
@ -169,10 +169,10 @@ fi
 | 
			
		||||
# check that lazy loading works for 'whereis'
 | 
			
		||||
cp "$CI_PROJECT_DIR/data/metadata/ghcup-${JSON_VERSION}.yaml" "$CI_PROJECT_DIR/data/metadata/ghcup-${JSON_VERSION}.yaml.bak"
 | 
			
		||||
echo '**' > "$CI_PROJECT_DIR/data/metadata/ghcup-${JSON_VERSION}.yaml"
 | 
			
		||||
eghcup whereis ghc $(ghc --numeric-version)
 | 
			
		||||
eghcup whereis ghc "$(ghc --numeric-version)"
 | 
			
		||||
mv -f "$CI_PROJECT_DIR/data/metadata/ghcup-${JSON_VERSION}.yaml.bak" "$CI_PROJECT_DIR/data/metadata/ghcup-${JSON_VERSION}.yaml"
 | 
			
		||||
 | 
			
		||||
eghcup rm $(ghc --numeric-version)
 | 
			
		||||
eghcup rm "$(ghc --numeric-version)"
 | 
			
		||||
 | 
			
		||||
# https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/116
 | 
			
		||||
if [ "${OS}" = "Linux" ] ; then
 | 
			
		||||
@ -186,7 +186,7 @@ eghcup gc -c
 | 
			
		||||
 | 
			
		||||
# test etags
 | 
			
		||||
rm -f "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml"
 | 
			
		||||
raw_eghcup -s https://www.haskell.org/ghcup/data/ghcup-${JSON_VERSION}.yaml list
 | 
			
		||||
raw_eghcup -s "https://www.haskell.org/ghcup/data/ghcup-${JSON_VERSION}.yaml" list
 | 
			
		||||
# snapshot yaml and etags file
 | 
			
		||||
etag=$(cat "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml.etags")
 | 
			
		||||
sha=$(sha_sum "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml")
 | 
			
		||||
 | 
			
		||||
@ -209,19 +209,7 @@ platformParser s' = case MP.parse (platformP <* MP.eof) "" (T.pack s') of
 | 
			
		||||
        )
 | 
			
		||||
    ]
 | 
			
		||||
  distroP :: MP.Parsec Void Text LinuxDistro
 | 
			
		||||
  distroP = choice'
 | 
			
		||||
    [ MP.chunk "debian" $> Debian
 | 
			
		||||
    , MP.chunk "deb" $> Debian
 | 
			
		||||
    , MP.chunk "ubuntu" $> Ubuntu
 | 
			
		||||
    , MP.chunk "mint" $> Mint
 | 
			
		||||
    , MP.chunk "fedora" $> Fedora
 | 
			
		||||
    , MP.chunk "centos" $> CentOS
 | 
			
		||||
    , MP.chunk "redhat" $> RedHat
 | 
			
		||||
    , MP.chunk "alpine" $> Alpine
 | 
			
		||||
    , MP.chunk "gentoo" $> Gentoo
 | 
			
		||||
    , MP.chunk "exherbo" $> Exherbo
 | 
			
		||||
    , MP.chunk "unknown" $> UnknownLinux
 | 
			
		||||
    ]
 | 
			
		||||
  distroP = choice' ((\d -> MP.chunk (T.pack $ distroToString d) $> d) <$> allDistros)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uriParser :: String -> Either String URI
 | 
			
		||||
@ -367,7 +355,7 @@ fileUri' add = \case
 | 
			
		||||
  -- We need to do this so bash doesn't expand out any ~ or other
 | 
			
		||||
  -- chars we want to complete on, or emit an end of line error
 | 
			
		||||
  -- when seeking the close to the quote.
 | 
			
		||||
  -- 
 | 
			
		||||
  --
 | 
			
		||||
  -- NOTE: copied from https://hackage.haskell.org/package/optparse-applicative-0.17.0.0/docs/src/Options.Applicative.Builder.Completer.html#requote
 | 
			
		||||
  requote :: String -> String
 | 
			
		||||
  requote s =
 | 
			
		||||
 | 
			
		||||
@ -249,15 +249,18 @@ data LinuxDistro = Debian
 | 
			
		||||
                 | RedHat
 | 
			
		||||
                 | Alpine
 | 
			
		||||
                 | AmazonLinux
 | 
			
		||||
                 | RockyLinux
 | 
			
		||||
                 | VoidLinux
 | 
			
		||||
                 | Rocky
 | 
			
		||||
                 | Void
 | 
			
		||||
                 -- rolling
 | 
			
		||||
                 | Gentoo
 | 
			
		||||
                 | Exherbo
 | 
			
		||||
                 -- not known
 | 
			
		||||
                 | UnknownLinux
 | 
			
		||||
                 -- ^ must exit
 | 
			
		||||
  deriving (Eq, GHC.Generic, Ord, Show)
 | 
			
		||||
  deriving (Eq, GHC.Generic, Ord, Show, Enum, Bounded)
 | 
			
		||||
 | 
			
		||||
allDistros :: [LinuxDistro]
 | 
			
		||||
allDistros = enumFromTo minBound maxBound
 | 
			
		||||
 | 
			
		||||
instance NFData LinuxDistro
 | 
			
		||||
 | 
			
		||||
@ -270,8 +273,8 @@ distroToString CentOS = "centos"
 | 
			
		||||
distroToString RedHat = "redhat"
 | 
			
		||||
distroToString Alpine = "alpine"
 | 
			
		||||
distroToString AmazonLinux = "amazon"
 | 
			
		||||
distroToString RockyLinux = "rocky"
 | 
			
		||||
distroToString VoidLinux = "void"
 | 
			
		||||
distroToString Rocky = "rocky"
 | 
			
		||||
distroToString Void = "void"
 | 
			
		||||
distroToString Gentoo = "gentoo"
 | 
			
		||||
distroToString Exherbo = "exherbo"
 | 
			
		||||
distroToString UnknownLinux = "unknown"
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user