aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/npins_to_unflake.jq
blob: 80e6b5a381ad04acd8e8b8ca377f43e260a37453 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def make_url(value):
        value.repository as $repo |
        if value.type == "Git" then
            if $repo.type == "Git" then
                "git+\($repo.url)?ref=\(value.branch)"
            elif $repo.type == "GitHub" then
                "github:\($repo.owner)/\($repo.repo)/\(value.branch)"
            elif $repo.type == "Forgejo" then
                "git+\($repo.server)/\($repo.owner)/\($repo.repo)?ref=\(value.branch)"
            else
                error("Invalid repository type: '\($repo.type)'")
            end
        elif value.type == "GitRelease" then
            if $repo.type == "GitHub" then
                "github:\($repo.owner)/\($repo.repo)/\(value.version)"
            else
                error("Invalid repository type: '\($repo.type)'")
            end
        elif value.type == "Channel" then
            empty
        else
                error("Invalid value type: '\(value.type)'")
        end
    ;

"{
\(
        .pins | to_entries | map(
        "    \"\(.key)\" = {
        url = \"\(make_url(.value))\";
    };"
        ) | join("\n")
    )
}"