| title | 🚩 Commands and options |
|---|---|
| weight | 300 |
{{< toc >}}
The general syntax of the eask program is:
eask [GLOBAL-OPTIONS] [COMMAND] [COMMAND-OPTIONS] [COMMAND-ARGUMENTS]Create a new elisp project with the default Eask-file and CI/CD support.
eask [GLOBAL-OPTIONS] create package <name>{{< hint info >}} 💡 The template project is located in https://github.com/emacs-eask/template-elisp {{< /hint >}}
Create a new ELPA using github-elpa.
eask [GLOBAL-OPTIONS] create elpa <name>{{< hint info >}} 💡 The template project is located in https://github.com/emacs-eask/template-elpa {{< /hint >}}
Often use commands that are uncategorized.
Initialize the current directory to start using Eask.
eask [GLOBAL-OPTIONS] initEask will generate the file like this:
(package "PACKAGE-NAME"
"VERSION"
"YOUR PACKAGE SUMMARY")
(website-url "https://example.com/project-url/")
(keywords "KEYWORD1" "KEYWORD2")
(package-file "PACKAGE-FILE")
(script "test" "echo \"Error: no test specified\" && exit 1")
(source "gnu")
(depends-on "emacs" "26.1")[RECOMMENDED] If you already have an elisp project, you can convert the
.el file to Eask-file:
eask init --from source /path/to/source.el
If you already have a Cask project, you can convert Cask-file to Eask-file:
eask init --from cask /path/to/Cask
If you already have a Eldev project, you can convert Eldev-file to Eask-file:
eask init --from eldev /path/to/Eldev
If you already have a Keg project, you can convert Keg-file to Eask-file:
eask init --from keg /path/to/Keg
{{< hint ok >}} 💡 See section Examples for more Eask-file examples! {{< /hint >}}
Show information about the project or configuration.
eask [GLOBAL-OPTIONS] infoDisplay the state of the workspace.
eask [GLOBAL-OPTIONS] statusTo install packages.
eask [GLOBAL-OPTIONS] install [PACKAGES..]Install packages by specifying arguments:
eask install auto-complete helm magitOr else, it will install the package from the current development:
eask installTo install all dependencies.
Alias: install-dependencies, prepare
eask [GLOBAL-OPTIONS] install-deps [--dev]{{< hint ok >}} 💡 Specify option [--dev] to install dependencies from the development scope. {{< /hint >}}
Install packages from files, .tar files, or directories.
eask [GLOBAL-OPTIONS] install-file [FILES..]Install packages directly from the version control.
eask [GLOBAL-OPTIONS] install-vc [SPECS..]To uninstall/delete packages.
eask [GLOBAL-OPTIONS] uninstall [PACKAGES..]Uninstall packages by specifying arguments:
eask uninstall dash f sOr else, it will uninstall the package from the current development:
eask uninstallBuild the package artifact.
Alias: pack
eask package [DESTINATION]If [DESTINATION] is not specified, it will generate to the /dist folder
by default.
Byte-compile .el files.
eask compile [FILES..]Compile files by specifying arguments:
eask compile file-1.el file-2.elOr compile files that are already specified in your Eask-file.
eask compileByte-recompile .el files.
eask recompile [FILES..]{{< hint info >}}
💡 Similar to eask compile, but it will also remove old .elc files before
compiling.
{{< /hint >}}
Print path to package directory, where all dependencies are installed.
eask [GLOBAL-OPTIONS] package-directoryPrint the PATH environment variable of this project.
Alias: exec-path
eask [GLOBAL-OPTIONS] path [PATTERNS..]Optionally, you can pass in [PATTERNS..] to perform the search.
Print the load path containing the dependencies of the current project.
eask [GLOBAL-OPTIONS] load-path [PATTERNS..]Optionally, you can pass in [PATTERNS..] to perform the search.
Print the list of all package files.
eask [GLOBAL-OPTIONS] files [PATTERNS..]If [PATTERNS..] are defined, it will display files that match that pattern.
Suggest a recipe format.
eask [GLOBAL-OPTIONS] recipe [FILES..]List available keywords that can be used in the header section.
eask [GLOBAL-OPTIONS] keywordsBump version for your project and/or Eask-file.
eask [GLOBAL-OPTIONS] bump [LEVELS..]{{< hint info >}} 💡 Argument [LEVELS..] accepts major, minor and/or patch! {{< /hint >}}
View filename(s).
The positional argument [PATTERNS..] is an array of wildcard patterns.
eask [GLOBAL-OPTIONS] cat [PATTERNS..]{{< hint info >}} 💡 This command uses the package e2ansi to accomplish the syntax highlighting. {{< /hint >}}
Concatenate all Emacs Lisp files into one file.
eask [GLOBAL-OPTIONS] concat [FILES..]Print LOC information.
eask [GLOBAL-OPTIONS] loc [FILES..]Commands used to build documentation site.
Build documentation.
eask [GLOBAL-OPTIONS] docs [NAMES..]Commands allow you to execute on top of the Eask core.
Basically, this allows you to do anything you want!
Load Emacs Lisp files in order.
eask [GLOBAL-OPTIONS] load [FILES..]Execute the system command with the given arguments.
eask [GLOBAL-OPTIONS] exec [COMMAND] [ARGUMENTS ...]Execute emacs with the appropriate environment.
eask [GLOBAL-OPTIONS] emacs [ARGUMENTS ...]Evaluate FORM as a lisp form.
eask [GLOBAL-OPTIONS] eval [FORM]Start the Elisp REPL.
eask [GLOBAL-OPTIONS] repl [FILES..]Alias: ielm
Run the script.
eask [GLOBAL-OPTIONS] run script [NAMES..]Run the command.
Alias: cmd
eask [GLOBAL-OPTIONS] run command [NAMES..]Launch specified Emacs version in a Docker container.
eask [GLOBAL-OPTIONS] docker <VERSION> [ARGUMENTS ...]For example:
eask docker 26.1 infoThis is the same as jumping right into Emacs 26.1 (in docker) and executing
eask info.
Commands that help you manage your package's dependencies.
List out all package archives.
eask [GLOBAL-OPTIONS] archivesSearch packages from archives.
eask [GLOBAL-OPTIONS] search [QUEIRES..]Upgrade all packages.
eask [GLOBAL-OPTIONS] upgradeList packages.
eask [GLOBAL-OPTIONS] list [--depth]List out all outdated packages.
eask [GLOBAL-OPTIONS] outdated [--depth]Download package archives.
eask [GLOBAL-OPTIONS] refreshGenerate files that are used for the development.
Generate autoload file.
Write a package autoloads to project-autoloads.el in the project root.
eask [GLOBAL-OPTIONS] generate autoloadsproject is the project name, as declared in Eask-file. See
Multi-file Packages (elisp)
for details.
Generate pkg file.
Write a package descriptor file to project-pkg.el in the project root.
Alias: pkg, pkg-el
eask [GLOBAL-OPTIONS] generate pkg-fileproject is the project name, as declared in Eask-file. See
Multi-file Packages (elisp)
for details.
Generate recipe file.
eask [GLOBAL-OPTIONS] generate recipe [DESTINATION]If [DESTINATION] is not specified, it will generate to the /recipes folder
by default.
Generate LICENSE file.
eask [GLOBAL-OPTIONS] generate license <name>name is the type of the license, see https://api.github.com/licenses for all
the choices.
{{< hint info >}} 💡 This command uses the package license-templates to generate ignore file. {{< /hint >}}
Generate ignore file.
eask [GLOBAL-OPTIONS] generate ignore <name>{{< hint info >}} 💡 This command uses the package gitignore-templates to generate ignore file. {{< /hint >}}
Create a new test project for the ert tests.
eask [GLOBAL-OPTIONS] generate test ert [NAMES..]Create a new test project for the ert-runner.
eask [GLOBAL-OPTIONS] generate test ert-runner [NAMES..]Create a new Buttercup setup for the project.
eask [GLOBAL-OPTIONS] generate test buttercupCreate a new Ecukes setup for the project.
eask [GLOBAL-OPTIONS] generate test ecukesGenerate CircleCI workflow yaml file.
The default filename is config.yml.
eask [GLOBAL-OPTIONS] generate workflow circle-ci [--file]This will generate the yaml file under .circleci/!
Generate GitHub Actions workflow yaml file.
The default filename is test.yml.
eask [GLOBAL-OPTIONS] generate workflow github [--file]This will generate the yaml file under .github/workflow/!
Generate GitLab Runner workflow yaml file.
The default filename is .gitlab-ci.yml.
eask [GLOBAL-OPTIONS] generate workflow gitlab [--file]Generate Travis CI workflow yaml file.
The default filename is .travis.yml.
eask [GLOBAL-OPTIONS] generate workflow travis-ci [--file]Link between this package and a dependency on the local filesystem. A linked
dependency avoids the need to download a dependency from a remote archive. The
package linked to must either have a Eask-file or a -pkg.el-file.
Links the given source directory into the package directory of this project, under the given package name.
eask [GLOBAL-OPTIONS] link add <NAME> <PATH>Deletes the link for the given packages.
Alias: remove
eask [GLOBAL-OPTIONS] link delete [NAMES..]List all links.
eask [GLOBAL-OPTIONS] link listDelete various files produced during building.
Delete .eask from the current workspace.
Alias: .eask
eask [GLOBAL-OPTIONS] clean workspace⛔️ Don't specify the option --config, -c, or else it will delete your entire ~/.emacs.d.
eask clean workspace -gDelete all .elc files. This would respect to your Eask file.
eask [GLOBAL-OPTIONS] clean elcDelete dist subdirectory.
Alias: distribution
eask [GLOBAL-OPTIONS] clean distRemove generated autoloads file.
eask [GLOBAL-OPTIONS] clean autoloadsRemove generated pkg-file.
eask [GLOBAL-OPTIONS] clean pkg-fileRemove all generated log files.
eask [GLOBAL-OPTIONS] clean log-fileThis command is the combination of all other clean commands.
clean workspaceclean elcclean distclean autoloadsclean pkg-fileclean log-file
Alias: everything
eask [GLOBAL-OPTIONS] clean allCommands that lint your Emacs package.
Run package-lint.
eask [GLOBAL-OPTIONS] lint package [FILES..]Run checkdoc (built-in).
eask [GLOBAL-OPTIONS] lint checkdoc [FILES..]Run elint (built-in).
eask [GLOBAL-OPTIONS] lint elint [FILES..]Run elisp-lint.
eask [GLOBAL-OPTIONS] lint elisp-lint [FILES..]This does respect the .dir-locals.el file! 🎉
Run elsa.
eask [GLOBAL-OPTIONS] lint lint elsa [FILES..]Run indent-lint.
eask [GLOBAL-OPTIONS] lint indent [FILES..]Run keywords checker (built-in).
eask [GLOBAL-OPTIONS] lint keywordsRun license check.
eask [GLOBAL-OPTIONS] lint licenseRun check-declare (built-in).
eask [GLOBAL-OPTIONS] lint declare [FILES..]Run relint.
Alias: lint relint
eask [GLOBAL-OPTIONS] lint regexps [FILES..]Run regression/unit tests.
Activate package; use to test the package activation
eask [GLOBAL-OPTIONS] activate [FILES..]{{< hint info >}} 💡 You can pass in [FILES..] so you can test your package activation fully!
[FILES..] will be loaded after the package is activated. {{< /hint >}}
Run ert tests.
eask [GLOBAL-OPTIONS] test ert [FILES..]Run ert test using ert-runner.
eask [GLOBAL-OPTIONS] test ert-runnerRun buttercup tests.
eask [GLOBAL-OPTIONS] test buttercupRun ecukes tests.
eask [GLOBAL-OPTIONS] test ecukes [FILES..]Run melpazoid tests.
eask [GLOBAL-OPTIONS] test melpazoid [DIRECTORIES..]{{< hint info >}} 💡 If [DIRECTORIES..] is not passed in; it will use the current workspace instead. {{< /hint >}}
Commands that formats your Emacs source files.
Run elisp-autofmt formatter.
eask [GLOBAL-OPTIONS] format elisp-autofmt [FILES..]Run elfmt formatter.
eask [GLOBAL-OPTIONS] format elfmt [FILES..]List of commands that control DSL.
Add an archive source.
eask [GLOBAL-OPTIONS] source add <NAME> [URL]Remove an archive source.
Alias: remove
eask [GLOBAL-OPTIONS] source delete <NAME>List all source information.
eask [GLOBAL-OPTIONS] source list{{< hint info >}}
💡 This command is the same as eask archives!
{{< /hint >}}
Other helper commands.
Upgrade Eask to the latest version.
Alias: upgrade-self
eask [GLOBAL-OPTIONS] upgrade-eask{{< hint warning >}} 💡 This will only work if you install it from the source! {{< /hint >}}
Show Eask installed location.
eask [GLOBAL-OPTIONS] locateCommands to check your Eask-file.
Lint an Eask-file.
eask [GLOBAL-OPTIONS] analyze [FILES..]Example:
# lint all Eask-files in the current directory and subdirectories
eask analyze
# lint specific files
eask analyze Eask Eask.27
# lint all Eask-files in specified directory and subdirectories
eask analyze src/
# print result as JSON
eask analyze --jsonFor more detail, run eask analyze --help.
The following options are available on all Eask commands:
This will use ~/.eask/ instead of the package development environment.
This is used for other tasks. e.g., cat, etc.
eask -g [COMMAND]This will use ~/.emacs.d/ instead of the package development environment.
This is used for doing stuff for your Emacs configuration. e.g., package management, etc.
eask -c [COMMAND]Enable the all flag.
eask -a [COMMAND]Start cleanly without loading the configuration files.
eask -q [COMMAND]Force command's execution.
Force to uninstall the package dash even it's a dependency from another packages.
eask -f [COMMAND]Enable debug information.
This is equivalent to:
(setq debug-on-error t)Trigger error instead of warnings.
For instance, in eask compile:
(setq byte-compile-error-on-warn t)Continue the execution without killing the Emacs.
Connect archives with HTTP instead of HTTPS.
Enable/Disable timestamps.
Enable/Disable log header.
Weather to generate log files.
Disable color output.
Show elapsed time between each operation.
Set verbosity from 0 to 5.
eask --verbose 4 [COMMAND]Show version number.
Show help.
Set Emacs proxy for HTTP and HTTPS:
eask --proxy "localhost:8888" [COMMAND]Set Emacs proxy for HTTP only.
Set Emacs proxy for HTTPS only.
Do not use a proxy for any URL matching pattern.
<pattern>is an Emacs regular expression.