Index: trunk/COPYING
===================================================================
--- trunk/COPYING	(revision 28)
+++ 	(revision )
@@ -1,8 +1,0 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42.1):
- * <eternal-servant@yakumo.dev> wrote this file. As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a bottle of sake in return Izuru Yakumo
- * ----------------------------------------------------------------------------
- */
Index: trunk/DPL-2.3
===================================================================
--- trunk/DPL-2.3	(revision 1)
+++ trunk/DPL-2.3	(revision 1)
@@ -0,0 +1,15 @@
+Discordian Public License 2.3 (DPL-2.3)
+
+All Rites Reversed (ĸ) 3188 Aoi Koizumi [Champagne Supernova] <koizumi.aoi@kyoko-project.wer.ee>
+
+Permission is hereby granted, to any person obtaining a copy of this
+material without restriction, including but not limited the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the material, subject to the following conditions:
+
+YOU AGREE THAT THERE IS NO GODDESS BUT GODDESS AND SHE IS YOUR GODDESS & 
+THAT THERE IS NO ERISIAN MOVEMENT BUT THE ERISIAN MOVEMENT AND IT IS THE
+ERISIAN MOVEMENT.
+
+HAIL ERIS!
+FIVE TONS OF FLAX
Index: trunk/Makefile
===================================================================
--- trunk/Makefile	(revision 28)
+++ 	(revision )
@@ -1,20 +1,0 @@
-PREFIX=/usr/local
-BINDIR=${PREFIX}/bin
-EXDIR=${PREFIX}/share/examples/kanako
-MANDIR=${PREFIX}/man
-
-fmt:
-	@shfmt --posix --write kanako
-install-pre:
-	mkdir -p ${DESTDIR}${BINDIR}
-	mkdir -p ${DESTDIR}${EXDIR}
-	mkdir -p ${DESTDIR}${MANDIR}/man1 ${DESTDIR}${MANDIR}/man5
-install: install-pre
-	install -m0755 kanako ${DESTDIR}${BINDIR}/kanako
-	install -m0600 kanako.conf.example ${DESTDIR}${EXDIR}/kanako.conf
-	install -m0600 kanako.mdoc ${DESTDIR}${MANDIR}/man1/kanako.1
-	install -m0600 kanako.conf.mdoc ${DESTDIR}${MANDIR}/man5/kanako.conf.5
-uninstall:
-	rm -f ${DESTDIR}${BINDIR}/kanako
-	rm -rf ${DESTDIR}${EXDIR}
-	rm -f ${DESTDIR}${MANDIR}/man1/kanako.1 ${DESTDIR}${MANDIR}/man5/kanako.conf.5
Index: trunk/README.md
===================================================================
--- trunk/README.md	(revision 28)
+++ trunk/README.md	(revision 1)
@@ -1,30 +1,19 @@
-# kanako (神奈子)
-the adaptable password manager. named after [Kanako Yasaka](https://en.touhouwiki.net/wiki/Kanako_Yasaka) from [Touhou 10: Mountain of Faith](https://en.touhouwiki.net/wiki/Mountain_of_Faith)
+# ayu-ng
+Rewrite of `ayu(1)`, an actually boring password manager, now with interchangeable encryption backend.
 
 ## Backends supported
 * [age](https://age-encryption.org)
-* [cream](https://z3bra.org/cream/)
 * [gpg](https://gnupg.org)
-* [salty](https://git.mills.io/prologic/salty)
+* [saltpack (via salty)](https://git.mills.io/prologic/salty)
 
 ## Dependencies
-* [dd(1)](https://man.netbsd.org/dd.1)
-* [oathtool(1)](https://www.nongnu.org/oath-toolkit/)
-* [rm(1)](https://man.netbsd.org/rm.1)
-* [strings(1)](https://man.netbsd.org/strings.1)
-* [tr(1)](https://man.netbsd.org/tr.1)
-* [tree(1)](https://github.com/Old-Man-Programmer/tree)
-
-## Add-ons
-
-### kanako-menu
-quick graphical front-end for kanako, works with either of `dmenu(1)`
-or `bemenu(1)`, useful for copying passwords to clipboard.
+* Any of the above, depending how you configured it
+* `ls(1)` or `tree(1)` for printing a list
+* `mandoc(1)` for documentation
 
 ## License
-* [Beerware License (Revision 42.1)](COPYING)
+* [Discordian Public License, version 2.3](https://gt.kalli.st/novaburst/discordian-public-license/src/branch/discordia/DPL-2.3)
 
 ## Related software
-* [beastie/aps](https://codeberg.org/beastie/aps)
 * [biox/pa](https://github.com/biox/pa)
 * [e-zk/page](https://github.com/e-zk/page)
Index: trunk/ayu-ng
===================================================================
--- trunk/ayu-ng	(revision 1)
+++ trunk/ayu-ng	(revision 1)
@@ -0,0 +1,66 @@
+#!/bin/sh -e
+
+conf_dir=${conf_dir:-$HOME/.config/ayu}
+key_dir=${key_dir:-$HOME/.ayu}
+store_dir=${store_dir:-$HOME/.ayu-store}
+
+cd ${store_dir} || exit 1
+
+. ${conf_dir}/config
+
+fn_copy() {
+    fn_view $2 | ${clip}
+}
+fn_edit() {
+    ${decrypt_cmd} ${decrypt_args} ${1%%.enc}.enc
+    ${EDITOR} ${1%%.enc}
+    ${encrypt_cmd} ${encrypt_args} ${1%%.enc}
+    rm ${1%%.enc}
+}
+fn_generate() {
+    pwgen -s ${2:-80}
+}
+fn_list() {
+    if command -v tree 2>/dev/null; then
+	tree ${store_dir}
+    else
+	ls -l ${store_dir}
+    fi
+}
+fn_new() {
+    test -d $1 && fn_usage && exit 1
+
+    tmpfile=$(mktemp)
+    ${EDITOR} ${tmpfile}
+
+    mkdir -p $(dirname $1)
+    ${encrypt_cmd} ${encrypt_args} ${tmpfile}
+
+    mv ${tmpfile}.enc ${1%%.enc}.enc
+    rm ${tmpfile}
+}
+fn_trash_directory() {
+    rm -rf $@
+}
+fn_trash_entry() {
+    rm -f ${1}${2},enc
+}
+fn_usage() {
+    cat <<EOF
+Usage:
+ayu [-ceglnrRv] <arguments>
+ayu [copy|edit|generate|list|add|trash|trashdir|view] <arguments>
+EOF
+}
+
+case $1 in
+    -c | copy) fn_copy $2 ;;
+    -e | edit) fn_edit $2 ;;
+    -g | generate) fn_generate $2 ;;
+    -l | list) fn_list ;;
+    -n | add) fn_new ;;
+    -r | trash) fn_trash $2 ;;
+    -R | trashd) fn_trash_directory $2 ;;
+    -v | view) fn_view $2 ;;
+    *) fn_usage ;;
+esac
Index: trunk/ayu-ng.conf.example
===================================================================
--- trunk/ayu-ng.conf.example	(revision 1)
+++ trunk/ayu-ng.conf.example	(revision 1)
@@ -0,0 +1,18 @@
+# [General]
+#clip="xclip -i"
+
+# [Encryption]
+## age
+#encrypt_cmd="age"
+#encrypt_args="-e -R ${key_dir}/pub.age"
+#decrypt_args="-d -i ${key_dir}/priv.age"
+
+## gpg
+#encrypt_cmd="gpg"
+#encrypt_args="-e --recipient ${key_dir}/pub.gpg"
+#decrypt_args="-d"
+
+## salty
+#encrypt_cmd="salty"
+#encrypt_args="-e -r $(cat ${key_dir}/pub.slt)"
+#decrypt_args="-d -i ${key_dir}/priv.slt"
Index: trunk/ayu-ng.mdoc
===================================================================
--- trunk/ayu-ng.mdoc	(revision 1)
+++ trunk/ayu-ng.mdoc	(revision 1)
@@ -0,0 +1,43 @@
+.Dd Bureaucracy 62, 3188
+.Dt AYU-NG 1
+.Os
+.Sh NAME
+.Nm ayu-ng
+.Nd rewrite of ayu, an actually boring password manager
+.Sh DESCRIPTION
+
+.Sh USAGE
+.Bl -tag -width 11n -compact
+.It add, -n
+Add a new entry
+.It copy, -c
+Copy an entry's text to the clipboard
+.It edit, -e
+Edit an entry
+.It generate, -g
+Generate a random password
+.It list, -l
+List all entries
+.It del, -r
+Remove single entries
+.It delr, -R
+Remove recursively a directory w/ entries
+.It view, -v
+View an entry
+.Bl
+.El
+.Sh SEE ALSO
+.Xr 5 ayu-ng.conf
+.Rs
+.%A Rob Pike
+.%T "UNIX Style, or cat -v Considered Harmful"
+.%J "USENIX Summer Conference Proceedings"
+.%D 1983
+.Re
+.Sh AUTHORS
+.An Aoi Koizumi Aq Mt koizumi.aoi@kyoko-project.wer.ee
+.Sh BUGS
+Under the Wayland display protocol,
+the clipboard subcommand won't work,
+due to 'Permission denied'. On X11
+it works just fine.
Index: trunk/kanako
===================================================================
--- trunk/kanako	(revision 28)
+++ 	(revision )
@@ -1,113 +1,0 @@
-#!/bin/sh
-# $YakumoLabs: kanako,v 2.3 2025/05/14 02:07:06 yakumo_izuru Exp $
-
-kanako_conf_dir="${kanako_conf_dir:-$HOME/.config/kanako}"
-kanako_key_dir="${kanako_key_dir:-$HOME/.kanako}"
-kanako_store_dir="${kanako_store_dir:-$HOME/.kanako-store}"
-
-_die() {
-	printf "\033[0;31m%s\033[0m\n" "$*" >&2
-	exit 1
-}
-_info() {
-	printf "\033[0;32m%s\033[0m\n" "$*"
-}
-_warn() {
-	printf "\033[0;33m%s\033[0m\n" "$*"
-}
-
-[ -d "${kanako_store_dir}" ] && cd "${kanako_store_dir}" || _die "Password store not found"
-[ -f "${kanako_conf_dir}/kanako.conf" ] && . "${kanako_conf_dir}/kanako.conf" || _die "Configuration file not found"
-
-copy() {
-	view "$1" | "${kanako_clip_cmd}"
-}
-edit() {
-	if [ -f ${1%%.enc}.enc ]; then
-		${kanako_encrypt_cmd} ${kanako_decrypt_args} ${1%%.enc}.enc >${1%%.enc}
-		"${EDITOR:-${EDITOR:-vi}}" "${1%%.enc}"
-		${kanako_encrypt_cmd} ${kanako_encrypt_args} ${1%%.enc} >${1%%.enc}.enc
-		rm "${1%%.enc}"
-	else
-		_warn "${1%%.enc}.enc does not exist, maybe there was a typo on your end?"
-	fi
-}
-gen() {
-	printf "%s\n" $(strings </dev/urandom | dd bs=1 count="${1:-30}" 2>/dev/null | tr -d ' \t\n\r')
-}
-list() {
-	if [ -z "$(command -v tree)" ]; then
-		_die "Required dependency 'tree' not found"
-
-	fi
-	if [ -z "$1" ]; then
-		tree "${kanako_store_dir}/" | sed 's/\.enc//g'
-	else
-		tree "${1:-.}" | sed 's/\.enc//g'
-	fi
-}
-new() {
-	[ -d "$1" ] && usage
-	tmpfile="$(mktemp)"
-	"${EDITOR:-${EDITOR:-vi}}" "${tmpfile}"
-	mkdir -p "$(dirname "$1")"
-	${kanako_encrypt_cmd} ${kanako_encrypt_args} ${tmpfile} >${1%%.enc}.enc
-	rm ${tmpfile}
-}
-otp() {
-	if [ -z "$(command -v oathtool)" ]; then
-		_die "Required dependency 'oathtool' not found"
-	fi
-	totp_seed=$(view "$1" | grep 'totp: ' | head -n1 | cut -d' ' -f2)
-	if ! [ -z ${totp_seed} ]; then
-		oathtool --totp -b ${totp_seed}
-	fi
-}
-delete_directory() {
-	_warn "Will be removing $1"
-	_warn "Are you okay with that?"
-	read junk
-	case ${junk} in
-		n | N) _info "Abort" ;;
-		y | Y) rm -rf "${1}" && _info "Removed $1" ;;
-	esac
-}
-delete_file() {
-	_warn "Will be removing $1"
-	_warn "Are you okay with that?"
-	read junk
-	case ${junk} in
-		n | N) _info "Abort" ;;
-		y | Y) rm -f "${1}.enc" && _info "Removed $1/$2" ;;
-	esac
-}
-usage() {
-	_info "Usage: kanako [-ceglnorRv] args"
-	_info "The arguments for all switches are relative to \${kanako_store_dir}"
-	_info "which is located at ${kanako_store_dir}"
-	exit
-}
-view() {
-	if [ -f "${1%%.enc}".enc ]; then
-		${kanako_encrypt_cmd} ${kanako_decrypt_args} "${1%%.enc}".enc
-	else
-		_die "${1%%.enc} was not found"
-	fi
-}
-
-cmd="$1"
-arg="$2"
-
-case ${cmd} in
-	-c) copy ${arg} ;;
-	-e) edit ${arg} ;;
-	-g) gen ${arg} ;;
-	-h) usage ;;
-	-l) list ${arg} ;;
-	-n) new ${arg} ;;
-	-o) otp ${arg} ;;
-	-r) delete_file ${arg} ;;
-	-R) delete_directory ${arg} ;;
-	-v) view ${arg} ;;
-	*) usage ;;
-esac
Index: trunk/kanako.conf.example
===================================================================
--- trunk/kanako.conf.example	(revision 28)
+++ 	(revision )
@@ -1,25 +1,0 @@
-# Configuration file for kanako(1)
-
-#kanako_clip_cmd="xclip -i"
-#kanako_clip_cmd="wl-copy --primary"
-#kanako_menu_cmd="dmenu"
-
-## age
-#kanako_encrypt_cmd="age"
-#kanako_encrypt_args="-e -R ${kanako_key_dir}/pub.key --armor"
-#kanako_decrypt_args="-d -i ${kanako_key_dir}/priv.key"
-
-## cream
-#kanako_encrypt_cmd="cream"
-#kanako_encrypt_args="-e -f"
-#kanako_decrypt_args="-d"
-
-## gpg
-#kanako_encrypt_cmd="gpg"
-#kanako_encrypt_args="-e --recipient ${kanako_key_dir}/pub.key"
-#kanako_decrypt_args="-d"
-
-## salty
-#kanako_encrypt_cmd="salty"
-#kanako_encrypt_args="-e -r $(cat ${kanako_key_dir}/pub.slt)"
-#kanako_decrypt_args="-d -i ${kanako_key_dir}/priv.slt"
Index: trunk/kanako.conf.mdoc
===================================================================
--- trunk/kanako.conf.mdoc	(revision 28)
+++ 	(revision )
@@ -1,28 +1,0 @@
-.Dd May 14, 2025
-.Dt KANAKO.CONF 5
-.Os
-.Sh NAME
-.Nm kanako.conf
-.Nd configuration file for kanako
-.Sh CONFIGURATION FIELDS
-.Bl -tag -width 11n -compact
-.It kanako_clip_cmd
-Clipboard executable to be
-used with the -c switch
-.It kanako_decrypt_args
-Arguments for decryption
-passed to kanako_encrypt_cmd
-.It kanako_encrypt_args
-Arguments for encryption
-passed to kanako_encrypt_cmd
-.It kanako_encrypt_cmd
-Encryption executable to
-be used with the program
-.It kanako_menu_cmd
-Menu executable to
-be used with kanako_menu
-.El
-.Sh SEE ALSO
-.Xr kanako 1
-.Sh AUTHORS
-.An Izuru Yakumo Aq Mt eternal-servant@yakumo.dev
Index: trunk/kanako.mdoc
===================================================================
--- trunk/kanako.mdoc	(revision 28)
+++ 	(revision )
@@ -1,57 +1,0 @@
-.Dd May 14, 2025
-.Dt KANAKO 1
-.Os
-.Sh NAME
-.Nm kanako
-.Nd the adaptable password manager
-.Sh SYNOPSIS
-.Nm
-.Op Fl ceglnorRv
-.Op Ar args
-.Sh DESCRIPTION
-It is a clean rewrite of
-.Xr ayu 1
-supporting multiple backends
-and having more add-ons for
-use with it.
-However, it may be pretty unstable compared
-to said tool, but should work well for its purpose.
-.Sh USAGE
-.Bl -tag -width 11n -compact
-.It -n
-Add a new entry
-.It -c
-Copy an entry's text to the clipboard
-.It -e
-Edit an entry
-.It -g
-Generate a random password
-.It -l
-List all entries
-.It -o
-Obtain a one time password
-.It -r
-Remove single entries,
-will prompt for confirmation
-.It -R
-Remove recursively a directory w/ entries,
-will prompt for confirmation
-.It -v
-View an entry
-.El
-.Sh SEE ALSO
-.Xr age 1 ,
-.Xr cream 1 ,
-.Xr gpg 1 ,
-.Xr oathtool 1 ,
-.Xr pwgen 1 ,
-.Xr salty 1 ,
-.Xr kanako.conf 5
-.Rs
-.%A Rob Pike
-.%T "UNIX Style, or cat -v Considered Harmful"
-.%J "USENIX Summer Conference Proceedings"
-.%D 1983
-.Re
-.Sh AUTHORS
-.An Izuru Yakumo Aq Mt eternal-servant@yakumo.dev
