ADDED symfony-cli.el Index: symfony-cli.el ================================================================== --- symfony-cli.el +++ symfony-cli.el @@ -0,0 +1,73 @@ +;; -*- lexical-binding: t -*- + +;; emacs-symfony - emacs support for symfony framework +;; Copyright (C) 2025 Mikhail Kirillov <@w96k> + +;; This file is not part of GNU Emacs + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +(defvar symfony-cli-binary "symfony" + "Symfony binary file name") + +(defvar symfony-cli-path "~/.emacs.d/" + "Symfony cli path") + +(defvar symfony-cli-repo "https://github.com/symfony-cli/symfony-cli" + "Symfony cli git repository") + +(defvar symfony-cli-version "v5.12.0" + "Symfony cli version") + +(defvar symfony-cli-arch "amd64" + "Symfony cli cpu architecture") + +(defvar symfony-cli-platform "linux" + "Symfony cli cpu architecture") + +(defvar symfony-cli-download-format ".tar.gz" + "Symfony cli cpu architecture") + +(defun symfony-cli--get-download-url () + (concat symfony-cli-repo "/releases/download/" symfony-cli-version + "/symfony-cli_" symfony-cli-platform + "_" symfony-cli-arch symfony-cli-download-format)) + +(defun symfony-cli--get-archive-filename () + (concat symfony-cli-binary symfony-cli-download-format)) + +(defun symfony-cli--get-archive-path () + (concat symfony-cli-path (symfony-cli--get-archive-filename))) + +(defun symfony-cli--unpack-archive (archive-path unpack-path) + (shell-command (concat "tar -xzf " archive-path " --directory " unpack-path "/ " symfony-cli-binary))) + +(concat "tar -xzvf " (symfony-cli--get-archive-path) " " symfony-cli-binary " --directory " symfony-cli-path) + +(defun symfony-cli-download () + "Download ready to use symfony-cli binary" + (interactive) + + (let ((symfony-cli-url (symfony-cli--get-download-url))) + (url-retrieve + symfony-cli-url + #'eww-download-callback + (list (symfony-cli--get-archive-path) "/tmp/"))) + + (symfony-cli--unpack-archive (symfony-cli--get-archive-path) symfony-cli-path)) + +(defun symfony-cli-compile () + "Download symfony-cli source and compile it" + (interactive) + (message "TODO"))