Skip to content

emacs-eask/easky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

License: GPL v3 JCS-ELPA MELPA MELPA Stable

easky

Control Eask CLI in Emacs

CI

Easky is the interface to control Eask CLI, it's a package manager and sandbox tools to test and manage your elisp packages.

Table of Contents

πŸ† Features

Easky is out of the box and comes along with many features.

Eask-file Management List installed packages
info list-installed
Linting with checkdoc Testing with buttercup
checkdoc buttercup

πŸ’Ύ Installation

πŸ” Step 1. Install Eask CLI

Download binaries from their release page , and extract the file somewhere on your machine. Then add the path /path/to/eask/ to environment PATH, so you can access it anywhere.

For more installation options, see https://emacs-eask.github.io/Getting-Started/Install-Eask/.

⚠ Warning

Make sure the executable eask has the permission to execute! Use chmod command if needed!

πŸ” Step 2. Install Easky (this package)

package.el

This package is available from JCS-ELPA. Install from these repositories then you should be good to go!

Normally, you don't need to add (require 'easky) to your configuration since most easky commands are autoload and can be called without loading the module!

use-package

If you use use-package, add the following to your init.el file:

(use-package easky :ensure t)

or with straight.el:

(use-package easky
  :straight (easky :type git :host github :repo "emacs-eask/easky"))

Manual installation

Copy all .el files in this repository to ~/.emacs.d/lisp and add the following:

(add-to-list 'load-path "~/.emacs.d/lisp/")
(require 'easky)

πŸ”° Quick start

The easiest to use this package, do:

M-x easky

That's it! Then you should be able to select the command you like to use through completing-read.

Some conditions may make Eask CLI unusable:

  1. eask is missing from your PATH, see also eask-api-executable
  2. You don't have an Eask-file in your project or current directory
  3. Invalid Eask-file (syntax error, invalid rules, etc)

πŸ“‡ Support Commands

All-in-one commands, these are commands we recommend you start with!

Commands Description
easky Start Eask by selecting the through completion
easky-create Master command for create commands
easky-generate Master command for generate commands
easky-clean Master command for clean commands
easky-link Master command for link commands
easky-lint Master command for lint commands
easky-test Master command for test commands
easky-source Master command for source commands

The following are the functions provided by easky, you can M-x with these commands:

Commands Description
easky-init Create Eask-file and initialize it
easky-info Print Eask-file information
easky-locate Print Eask installed location
easky-compile Byte-compile elc files.
easky-recompile Byte-recompile elc files.
easky-search Search available packages with query.
easky-files List all package files.
easky-archives List in used archives
easky-keywords List available keywords that can be used in the header section.
easky-run Execute Eask's script (with completion)
easky-package Package (build) your package
easky-install Install packages, see also easky-package-install
easky-uninstall Untnstall packages, see also easky-package-delete
easky-reinstall Reinstall packages, see also easky-package-reinstall
easky-upgrade Upgrade packages., see also easky-package-update
easky-install-deps Install all package dependencies
easky-recipe Recommend me a recipe format.
easky-help Print Eask help manual
easky-version Print Eask version
easky-upgrade-eask Upgrade Eask CLI
easky-stop Terminate the current process
easky-bump Bump version for your package or Eask-file.
easky-cat View filename(s).
easky-concat Concatenate all source files.
easky-loc Print LOC information.
easky-path Print the PATH (exec-path) from Eask sandbox.
easky-load-path Print the `load-path' from Eask sandbox.

πŸ”ˆ Create

Commands Description
easky-create-package Create a new elisp package
easky-create-elpa Create a new ELPA using github-elpa

🏭 Generate

Commands Description
easky-generate-autoloads Generate -autoloads.el file, and print it out
easky-generate-pkg-file Generate -pkg.el, and printed it out
easky-generate-license Generate LICENSE file
easky-generate-ignore Generate ignore file.
easky-generate-test Master command for generate test
easky-generate-test-ert Setup test files for ert tests.
easky-generate-test-ert-runner Setup test files for ert-runner.
easky-generate-test-buttercup Setup test files for buttercup.
easky-generate-test-ecukes Setup test files for ecukes.
easky-generate-workflow Master command for generate workflow
easky-generate-workflow-circle-ci Generate CircleCI test file
easky-generate-workflow-github Generate GitHub Actions test file
easky-generate-workflow-gitlab Generate GitLab Runner test file
easky-generate-workflow-travis-ci Generate Travis CI test file

πŸ“š Documentation

Commands used to build documentation site.

Commands Description
easky-docs Build documentation.

πŸ’» Execution

Sometimes you would want to execute some command directly!

Commands Description
easky-eask Run the Eask CLI directly
easky-exec Run eask exec
easky-emacs Run eask emacs
easky-eval Run eask eval
easky-load Run eask load
easky-docker Run eask docker

🧹 Cleaning

Commands to keep your project clean:

Commands Description
easky-clean-workspace Clean up .eask directory
easky-clean-elc Remove byte compiled files generated by eask compile
easky-clean-dist Delete dist subdirectory
easky-clean-autoloads Remove generated autoloads file
easky-clean-pkg-file Remove generated pkg-file
easky-clean-log-file Remove all generated log files
easky-clean-all Do all cleaning tasks

πŸ“ Linting

Commands to help you lint your packages:

Commands Description
easky-lint-checkdoc Run checkdoc
easky-lint-check-declare Run check-declare
easky-lint-elint Run elint
easky-lint-elsa Run elsa
easky-lint-indent Run indent-linet
easky-lint-keywords Run keywords linter
easky-lint-license Run license linter
easky-lint-regexps Run relint

πŸ’‘ These extenral tools are automatically installed in your sandbox!

πŸ”— Linking

Commands to link local packages:

Commands Description
easky-link-add Link a local package
easky-link-delete Delete local linked packages
easky-link-list List all project links

πŸ” Testing

Commands to help you test your packages:

Commands Description
easky-test-ert Run ert tests
easky-test-ert-runner Run ert test through ert-runner
easky-test-buttercup Run buttercup tests
easky-test-ecukes Run ecukes tests
easky-test-melpazoid Run melpazoid tests

πŸ’‘ These external tools are automatically installed in your sandbox!

πŸ”— Control DSL

Commands to control DSL:

Commands Description
easky-source-add Add an archive source
easky-source-delete Delete an archive source
easky-source-list List all sources

πŸ“ˆ Checker

Commands to check your Eask-file.

Commands Description
easky-analyze Run Eask-file checker.

πŸ”§ Customization

πŸ§ͺ Variables

List of variables that interact with easky's behaviours.

  • easky-strip-header - output header while displaying. (Default: t)
  • easky-display-function - Function to display Easky's result. (Default: #'lv-message)
  • easky-focus-p - Select window after command execution. (Default: nil)
  • easky-move-point-for-output - Controls whether interpreter output moves point to the end of the output. (Default: nil)
  • easky-timeout-seconds - Timeout seconds for running too long process. (Default: 30)
  • easky-show-tip - Weather to show tip on waiting the output buffer (Default: t)

πŸ”Œ Plugins

easky comes with a couple of useful additions that can be used along with it.

πŸ“¦ package module

package module extends package.el so you can manage your package dependencies (from sandbox) through package.el.

Commads Description
easky-package-refresh-contents Extends package-refresh-contents, see also easky-refresh
easky-list-packages Extends list-packages
easky-list-installed-packages List installed packages
easky-package-install Extends package-install, see also easky-install
easky-package-delete Extends package-delete, see also easky-uninstall
easky-package-reinstall Extends package-reinstall, see also easky-reinstall
easky-package-recompile Extends package-recompile
easky-package-recompile-all Extends package-recompile-all
easky-describe-package Extends describe-package
easky-package-update Extends package-update
easky-package-update-all Extends package-update-all

🌟 Other packages you may be interested

πŸ› οΈ Contribute

PRs Welcome Elisp styleguide Donate on paypal Become a patron

If you would like to contribute to this project, you may either clone and make pull requests to this repository. Or you can clone the project and establish your own branch of this tool. Any methods are welcome!

πŸ”¬ Development

To run the test locally, you will need the following tools:

Install all dependencies and development dependencies:

$ eask install-deps --dev

To test the package's installation:

$ eask package
$ eask install

To test compilation:

$ eask compile

πŸͺ§ The following steps are optional, but we recommend you follow these lint results!

The built-in checkdoc linter:

$ eask lint checkdoc

The standard package linter:

$ eask lint package

πŸ“ P.S. For more information, find the Eask manual at https://emacs-eask.github.io/.

⚜️ License

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 https://www.gnu.org/licenses/.

See LICENSE for details.