Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

[Egg Request]: Crystal lang #2028

Open
devnote-dev opened this issue Dec 28, 2022 · 4 comments
Open

[Egg Request]: Crystal lang #2028

devnote-dev opened this issue Dec 28, 2022 · 4 comments
Labels
egg request request for egg

Comments

@devnote-dev
Copy link
Contributor

Does this expand an already existing service

No

Link to a game or software

https://crystal-lang.org/

Links for the download

https://github.com/crystal-lang/crystal

Links for the install docs

https://crystal-lang.org/install/

@devnote-dev devnote-dev added the egg request request for egg label Dec 28, 2022
@QuintenQVD0
Copy link
Collaborator

you have some test / example project I can use to finish the install script that I am making?

@devnote-dev
Copy link
Contributor Author

Assuming you meant application projects: https://github.com/PteroPackages/Fossil

If you need others then let me know, I have a few.

@QuintenQVD0
Copy link
Collaborator

@devnote-dev I now it took some time, but I got some basic egg togheter but I get a error when I try it with your Fossil project, you have any idea wy?

error:
afbeelding

egg:

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-03-30T10:32:05+02:00",
    "name": "Crystal lang generic",
    "author": "[email protected]",
    "description": "A language for humans and computers",
    "features": null,
    "docker_images": {
        "quintenqvd\/pterodactyl_images:temp_crystal": "quintenqvd\/pterodactyl_images:temp_crystal"
    },
    "file_denylist": [],
    "startup": ".\/{{MAIN_FILE}}",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": [\r\n        \"change this text 1\",\r\n        \"change this text 2\"\r\n    ]\r\n}",
        "logs": "{}",
        "stop": "^^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl make libssl-dev libxml2-dev libyaml-dev libgmp-dev zlib1g-dev ${APT_PACKAGES}\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n    echo -e \"assuming user knows what they are doing have a good day.\"\r\n    exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n    GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n    echo -e \"using anon api call\"\r\nelse\r\n    GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n    echo -e \"\/mnt\/server directory is not empty.\"\r\n    if [ -d .git ]; then\r\n        echo -e \".git directory exists\"\r\n        if [ -f .git\/config ]; then\r\n            echo -e \"loading info from git config\"\r\n            ORIGIN=$(git config --get remote.origin.url)\r\n        else\r\n            echo -e \"files found with no git config\"\r\n            echo -e \"closing out without touching things to not break anything\"\r\n            exit 10\r\n        fi\r\n    fi\r\n\r\n    if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n        echo \"pulling latest from github\"\r\n        git pull\r\n    fi\r\nelse\r\n    echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n    if [ -z ${BRANCH} ]; then\r\n        echo -e \"cloning default branch\"\r\n        git clone ${GIT_ADDRESS} .\r\n    else\r\n        echo -e \"cloning ${BRANCH}'\"\r\n        git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n    fi\r\n\r\nfi\r\n\r\nls -la\r\n\r\necho \"install\"\r\nshards install\r\n\r\necho \"build\"\r\nshards build ${BUILD_FLAGS}\r\n\r\necho -e \"install complete\"",
            "container": "crystallang\/crystal:latest",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Git Repo Address",
            "description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
            "env_variable": "GIT_ADDRESS",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "Install Branch",
            "description": "The branch to install.",
            "env_variable": "BRANCH",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "User Uploaded Files",
            "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
            "env_variable": "USER_UPLOAD",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|boolean",
            "field_type": "text"
        },
        {
            "name": "Git Username",
            "description": "Username to auth with git.",
            "env_variable": "USERNAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "Git Access Token",
            "description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
            "env_variable": "ACCESS_TOKEN",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "Main file",
            "description": "",
            "env_variable": "MAIN_FILE",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "Apt extra packages",
            "description": "Extra apt packages needed to build the application.\r\nThose are automatically installed: `git curl make libssl-dev libxml2-dev libyaml-dev libgmp-dev zlib1g-dev llvm-config`",
            "env_variable": "APT_PACKAGES",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:100",
            "field_type": "text"
        },
        {
            "name": "Build flags",
            "description": "Flags passed after the `shards build`as an argument",
            "env_variable": "BUILD_FLAGS",
            "default_value": "--production",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:64",
            "field_type": "text"
        }
    ]
}

@devnote-dev
Copy link
Contributor Author

The CLI.cr project was renamed to Cling a while ago, but I haven't had time to update it in Fossil. Try replacing the dependency in the shard.yml file to this:

- cli:
+ cling:
-   github: devnote-dev/cli.cr
+   github: devnote-dev/cling
    branch: stable

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
egg request request for egg
Projects
None yet
Development

No branches or pull requests

2 participants