mirror of
https://github.com/anoma/juvix.git
synced 2024-08-17 04:01:05 +03:00
This PR: * Modifies entry point `_entryPointBuildDir` to use the `BuildDir` type instead of `SomeBase Dir`. This allows delayed resolution of the default build directory which was useful for the Package -> Concrete translation point below. * Modifies `juvix dev root` to render the current package as a Package.juvix file. * Modifies the Package -> Concrete translation to recognise default arguments. So, for example, an empty `juvix.yaml` file will be translated into the following (instead of the `name`, `version`, and `dependencies` arguments being populated). module Package; import Stdlib.Prelude open; import PackageDescription.V1 open; package : Package := defaultPackage; * Adds a temporary command (removed when juvix.yaml support is removed) `juvix dev migrate-juvix-yaml` that translates `juvix.yaml` into an equivalent `Package.juvix` in the current project. * Adds a temporary script `migrate-juvix-yaml.sh` (removed when juvix.yaml support is removed) which can be run in the project to translate all Juvix projects in the repository. * Actually translate all of the `juvix.yaml` files to `Package.juvix` using the script. * Part of https://github.com/anoma/juvix/issues/2487
10 lines
441 B
Bash
Executable File
10 lines
441 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Projects must be migrated depth-first because Package.juvix is searched before juvix.yaml
|
|
# (so Package.juvix in parent directories are used before juvix.yaml in the current directory)
|
|
find . -type f -name "juvix.yaml" | awk -F'/' '{print NF-1 " " $0}' | sort -nr | cut -d' ' -f2- | while IFS= read -r file; do
|
|
dir=$(dirname "$file")
|
|
echo "migrating: $dir"
|
|
(cd "$dir" && juvix dev migrate-juvix-yaml)
|
|
done
|