eggs icon indicating copy to clipboard operation
eggs copied to clipboard

[Egg Request]: Crystal lang

Open devnote-dev opened this issue 1 year ago • 4 comments

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 avatar Dec 28 '22 23:12 devnote-dev

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

QuintenQVD0 avatar Jan 05 '23 09:01 QuintenQVD0

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

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

devnote-dev avatar Jan 05 '23 16:01 devnote-dev

@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"
        }
    ]
}

QuintenQVD0 avatar Mar 30 '23 08:03 QuintenQVD0

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

devnote-dev avatar Mar 30 '23 08:03 devnote-dev