From 28c01be6e3123071767025bc7b2b8e59b458f5e4 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Thu, 8 Feb 2024 03:52:30 +0100 Subject: [PATCH] initial commit --- .gitignore | 17 ++++++++++ Eask | 14 ++++++++ Makefile | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++ password-gen.el | 37 +++++++++++++++++++++ 5 files changed, 242 insertions(+) create mode 100644 .gitignore create mode 100644 Eask create mode 100644 Makefile create mode 100644 README.md create mode 100644 password-gen.el diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d67dbfa --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# ignore these directories +/.git +/recipes + +# ignore log files +/.log + +# ignore generated files +*.elc + +# eask packages +.eask/ +dist/ + +# packaging +*-autoloads.el +*-pkg.el diff --git a/Eask b/Eask new file mode 100644 index 0000000..1fbe787 --- /dev/null +++ b/Eask @@ -0,0 +1,14 @@ +(package "password-gen" + "0.1.0" + "Password generator for Emacs") + +(website-url "https://labs.phundrak.com/phundrak/password-gen.el") +(keywords "") + +(package-file "password-gen.el") + +(script "test" "echo \"Error: no test specified\" && exit 1") + +(source "gnu") + +(depends-on "emacs" "26.1") diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bbbf2db --- /dev/null +++ b/Makefile @@ -0,0 +1,88 @@ +## +# Eask generated template Makefile +# +# File located in https://github.com/emacs-eask/template-elisp/blob/master/Makefile +## + +EMACS ?= emacs +EASK ?= eask + +.PHONY: clean package install compile test checkdoc lint + +# CI entry point +# +# You can add or remove any commands here +# +# (Option 1): Basic for beginner, only tests for package's installation +ci: clean package install compile +# (Option 2): Advanced for a high-quality package +#ci: clean package install compile checkdoc lint test + +# Build an package artefact, default to `dist` folder +# +# This is used to test if your package can be built correctly before the +# package installation. +package: + @echo "Packaging..." + $(EASK) package + +# Install package +# +# If your package is a single file package, you generally wouldn't need to +install: + @echo "Installing..." + $(EASK) install + +# Byte-compile package +# +# Compile all your package .el files to .elc +compile: + @echo "Compiling..." + $(EASK) compile + +# Run regression tests +# +# The default test is `ert`; but Eask also support other regression test! +# See https://emacs-eask.github.io/Getting-Started/Commands-and-options/#-linter +test: + @echo "Testing..." + $(EASK) install-deps --dev + $(EASK) test ert ./test/*.el + +# Run checkdoc +# +# See https://www.emacswiki.org/emacs/CheckDoc +checkdoc: + @echo "Checking documentation..." + $(EASK) lint checkdoc --strict + +# Lint package metadata +# +# See https://github.com/purcell/package-lint +lint: + @echo "Linting..." + $(EASK) lint package + +# Generate autoloads file +# +# NOTE: This is generally unnecessary +autoloads: + @echo "Generating autoloads..." + $(EASK) autoloads + +# Generate -pkg file +# +# NOTE: This is generally unnecessary +pkg-file: + @echo "Generating -pkg file..." + $(EASK) pkg-file + +# Clean up +# +# This will clean all the entire workspace including the following folders +# and files +# +# - .eask folder (sandbox) +# - all .elc files +clean: + $(EASK) clean all diff --git a/README.md b/README.md new file mode 100644 index 0000000..0beac15 --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +This project was bootstrapped with [eask/cli](https://github.com/emacs-eask/cli). + +## How to use? + +1. Write and design your package in `your-package.el` +2. Install package dependences if any: + + ```sh + eask install-deps + ``` + +3. Prepare for installation, package it: (it will create package to `dist` folder) + + ```sh + eask package + ``` + +4. Install the built package: + + ```sh + eask install + ``` + +## Compile + +You would want to compile your elisp file to check if there are errors: + +```sh +eask compile +``` + +## Cleaning + +Simply executes the following: + +```sh +eask clean all +``` + +For more options, see `eask clean --help`! + +## Linting + +Linting is often optional but recommended to all elisp developers. + +with `checkodc`: + +```sh +eask lint checkodc +``` + +with `package-lint`: + +```sh +eask lint package # for pacakge-lint +``` + +For more options, see `eask lint --help`! + +## Testing + +Eask supports [ERT](https://www.gnu.org/software/emacs/manual/html_node/ert/index.html) +, [Buttercup](https://github.com/jorgenschaefer/emacs-buttercup) +, [Ecukes](https://github.com/ecukes/ecukes), and more. + +For more options, see `eask test --help`! + +## Continuous Integration + +### GitHub Actions + +```sh +eask generate workflow github +``` + +### CircleCI + +```sh +eask generate workflow circle-ci +``` + +For more options, see `eask generate workflow --help`! + +## Learn More + +To learn Eask, check out the [Eask documentation](https://github.com/emacs-eask). diff --git a/password-gen.el b/password-gen.el new file mode 100644 index 0000000..9608b81 --- /dev/null +++ b/password-gen.el @@ -0,0 +1,37 @@ +;;; password-gen.el --- Password generator for Emacs -*- lexical-binding: t; -*- + +;; Copyright (C) 2024 Lucien Cartier-Tilet + +;; Author: Lucien Cartier-Tilet +;; Maintainer: Lucien Cartier-Tilet +;; URL: https://labs.phundrak.com/phundrak/password-gen.el +;; Version: 0.1.0 +;; Package-Requires: ((emacs "26.1")) +;; Keywords: + +;; 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 . + +;;; Commentary: +;; +;; Password generator for Emacs +;; + +;;; Code: + +;; Happy coding! ;) + +(provide 'password-gen) +;;; password-gen.el ends here