system/rmw: Updated for version 0.8.1.

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Andy Alt 2022-02-01 09:59:15 +01:00 committed by Willy Sudiarto Raharjo
parent ee9df3fb8d
commit 8a5d776bb1
No known key found for this signature in database
GPG key ID: 3F617144D7238786
5 changed files with 309 additions and 171 deletions

View file

@ -1,6 +1,7 @@
rmw (ReMove to Waste) is a safe-remove utility for the command line.
Its goal is to conform to the FreeDesktop.org Trash specification and
therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
integration is optional however, and by default, rmw will only use a
unique features is the ability to purge files from your Waste/Trash
directories after x number of days.
rmw (ReMove to Waste) is a safe-remove utility for the command line. It
can move and restore files to and from directories specified in a
configuration file, and can also be integrated with your regular
desktop trash folder (if your desktop environment uses the
FreeDesktop.org Trash specification). One of the unique features of rmw
is the ability to purge items from your waste (or trash) directories
after x number of days.

View file

@ -1,186 +1,320 @@
# rmw-0.7.05
# rmw-0.8.1
## Description
rmw (ReMove to Waste) is a safe-remove utility for the command line.
Its goal is to conform to [the FreeDesktop.org Trash
specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
and therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
integration is optional however, and by default, rmw will only use a
waste folder separated from your desktop trash. One of its unique
features is the ability to purge files from your Waste/Trash
directories after x number of days.
rmw (ReMove to Waste) is a safe-remove utility for the command line. It
can move and restore files to and from directories specified in a
configuration file, and can also be integrated with your regular
desktop trash folder (if your desktop environment uses the
FreeDesktop.org Trash specification). One of the unique features of rmw
is the ability to purge items from your waste (or trash) directories
after x number of days.
Web site: <https://remove-to-waste.info/>
## Build Status
[![codeql-badge]][codeql-url]
[![c-cpp-badge]][c-cpp-url]
* [![Build Status](https://travis-ci.org/theimpossibleastronaut/rmw.svg?branch=master)](https://travis-ci.org/theimpossibleastronaut/rmw)
* [![Build Status](https://semaphoreci.com/api/v1/andy5995/rmw-3/branches/master/badge.svg)](https://semaphoreci.com/andy5995/rmw-3)
[c-cpp-badge]: https://github.com/theimpossibleastronaut/rmw/actions/workflows/c-cpp.yml/badge.svg
[c-cpp-url]: https://github.com/theimpossibleastronaut/rmw/actions/workflows/c-cpp.yml
[codeql-badge]: https://github.com/theimpossibleastronaut/rmw/workflows/CodeQL/badge.svg
[codeql-url]: https://github.com/theimpossibleastronaut/rmw/actions?query=workflow%3ACodeQL
rmw is for people who sometimes use rm or rmdir at the command line and
would occasionally like an alternative choice. It's not intended or
designed to act as a replacement for rm, as it's more closely related
to how the [FreeDesktop.org trash
system](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
functions.
## Features and Usage
<!-- Don't make changes below this line, but to src/man/rmw.1 instead. -->
<!-- This is generated with 'man --nh --no-justification ./rmw.1 | col -bx > plaintext' -->
```
OPTIONS
-h, --help
show help for command line options
-c, --config FILE
use an alternate configuration
-l, --list
list waste directories
-g[N_DAYS], --purge[=N_DAYS]
purge expired files; optional argument 'N_DAYS' overrides
'expire_age' value from the configuration file (Examples: -g90,
--purge=90)
By default, purging is disabled ('expire_age' is set to '0' in the
configuration file). To enable, set the 'expire_age' value in your
config file to a value greater than '0'
You can use '-vvg' to see when the remaining files in the waste
directories will expire.
-o, --orphaned
check for orphaned files (maintenance)
An orphan is an item in a waste directory that has no
corresponding .trashinfo file, or vice versa. This option is
intended primarily for developers. Orphans may happen while
testing code changes or if rmw is unintentionally released with a
bug.
(see also: <https://remove-to-waste.info/faq.html#dot_trashinfo>)
-f, --force
allow purging of expired files
rmw will refuse to purge directories if they contain non-writable
files or subdirectories. rmw will show a message that tells you
"permission denied; directory still contains files". To override,
you can re-run rmw using '-ffg'.
By default, force is not required to enable the purge feature. If
you would like to require it, add 'force_required' to your config
file.
--empty
completely empty (purge) all waste directories
-r, -R, --recursive
option used for compatibility with rm (recursive operation is
enabled by default)
-v, --verbose
increase output messages
-w, --warranty
display warranty
-V, --version
display version and license information
RESTORING
-z, --restore FILE(s)
To restore items, specify the path to them in the <WASTE>/files
directory (wildcards ok).
When restoring an item, if a file or directory with the same name
already exists at the destination, the item being restored will
have a time/date string (formatted as "_%H%M%S-%y%m%d") appended
to it (e.g. 'foo_164353-210508').
-s, --select
select files from list to restore
Displays a list of items in your waste directories. You can use
the left/right cursor keys to switch between waste directories.
Use the space bar to select the items you wish to restore, then
press enter to restore all selected items.
-u, --undo-last
undo last move
Restores files that were last rmw'ed
-m, --most-recent-list
list most recently rmw'ed files
ENVIRONMENT
These variables are intended only to be used for testing. See the code-
testing page on the rmw website for more details.
RMW_FAKE_HOME
RMW_FAKE_YEAR
RMW_FAKE_MEDIA_ROOT
FILES
On some systems, $HOME/.config and $HOME/.local/share may be replaced
with $XDG_CONFIG_HOME and $XDG_DATA_HOME
$HOME/.config/rmwrc
configuration file
$HOME/.local/share/rmw/purge-time
text file that stores the time of the last purge
$HOME/.local/share/rmw/mrl
text file containing a list of items that were last rmw'ed
NOTES
rmw will not move items from one file system to another. If you try to
rmw a file but don't have a waste directory configured that matches the
file system on which it resides, rmw will refuse to do anything with it.
DESKTOP INTEGRATION
Items will be moved to a waste basket in the same manner as when using
the "move to trash" option from your desktop GUI. They will be separated
from your desktop trash by default; or if you wish for them to share the
same "trash" directory, uncomment the line (in your config file):
(Note that this does not apply to MacOS; while rmw is yet unable to
integrate with the desktop trash directory, you'll still be able to use
the default Waste directory.)
WASTE = $HOME/.local/share/Trash
then comment out the line
WASTE = $HOME/.local/share/Waste
You can reverse which directories are enabled at any time if you ever
change your mind. If both directories are on the same filesystem, rmw
will use the directory listed first in your config file.
It can be beneficial to have them both uncommented. If your desktop trash
directory (~/.local/share/Trash) is listed after the rmw default
(~/.local/share/Waste) and uncommented, rmw will place newly rmw'ed items
into the default, and it will purge expired files from both.
When rmw'ing an item, if a file or directory with the same name already
exists in the waste (or trash) directory, it will not be overwritten;
instead, the current file being rmw'ed will have a time/date string
(formatted as "_%H%M%S-%y%m%d") appended to it (e.g.
'foo_164353-210508').
REMOVABLE MEDIA
The first time rmw is run, it will create a configuration file. Waste
directories will be created automatically (Except for when the
',removable' option is used; see below) e.g., if
'$HOME/.local/share/Waste' is uncommented in the config file, these two
directories will be created:
$HOME/.local/share/Waste/files
$HOME/.local/share/Waste/info
If a WASTE directory is on removable media, you may append ',removable'.
In that case, rmw will not try to create it; it must be initially created
manually. When rmw runs, it will check to see if the directory exists
(which means the removable media containing the directory is currently
mounted). If rmw can't find the directory, it is assumed the media
containing the directory isn't mounted and that directory will not be
used for the current run of rmw.
With the media mounted, once you manually create the waste directory for
that device (e.g. "/mnt/flash/.Trash-$UID") and run rmw, it will
automatically create the two required child directories "files" and
"info".
EXAMPLES
RESTORING
rmw -z ~/.local/share/Waste/files/foo
rmw -z ~/.local/share/Waste/files/bars*
CONFIGURATION
WASTE=/mnt/flash/.Trash-$UID, removable
When using the removable attribute, you must also manually create
the directory
expire_age = 45
rmw will permanently delete files that have been in the waste (or
trash) for more than 45 days.
AUTHORS
Project Manager: Andy Alt
The RMW team: see AUTHORS.md
REPORTING BUGS
Report bugs to <https://github.com/theimpossibleastronaut/rmw/issues>.
COPYRIGHT
Copyright © 2012-2021 Andy Alt
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There
is NO WARRANTY, to the extent permitted by law.
```
## Screenshots
![rmw usage output](https://remove-to-waste.info/images/Screenshot_2020-04-11.png)
[More Screenshots](https://remove-to-waste.info/screenshots.html)
See the [Screenshots](https://remove-to-waste.info/screenshots.html)
page on the website.
## Contact / Support
* [Bug Reports and Feature Requests](https://github.com/theimpossibleastronaut/rmw/blob/master/CONTRIBUTING.md#bug-reports-and-feature-requests)
* [General Help, Support, Discussion](https://remove-to-waste.info/#support)
## Required libraries
## Installation
rmw is available in the [homebrew and
linuxbrew](https://github.com/Homebrew/) repositories; or there may may
be a binary package available for your OS. You can view a list at
[Repology](https://repology.org/project/rmw/versions) to see in which
repositories rmw is included. Since v0.7.09, x86_64 AppImages are
available.
AppImages and maintainer-created amd64 Debian packages are available in
the [releases section][releases-url].
[releases-url]: https://github.com/theimpossibleastronaut/rmw/releases
## Installing from source
### Required libraries
* libncursesw (ncurses-devel on some systems, such as CentOS)
* gettext (or use --disable-nls if you only need English language support)
* gettext (or use '-Dnls=false' if you only need English language support)
If you are building from source, you will need the libncursesw(5 or
If you're building from source, you will need the libncursesw(5 or
6)-dev package from your operating system distribution. On some systems
just the ncurses packages is needed, and it's often already installed.
## Compiling
### Compiling
### As a normal user:
#### As a normal user:
Use `../configure --help` to view available compile-time options.
(This examples places the generated files to a separate folder, but you can
run 'configure' from any directory you like.)
mkdir build
cd build
../configure
make
```
meson builddir
cd builddir
ninja
```
### Installing without superuser privileges
Use `meson configure` in the build dir to view or change available
options.
#### Installing without superuser privileges
If you would like to install rmw without superuser privileges, use a prefix
that you have write access to. Example:
../configure --prefix=$HOME/usr
make
make install
meson -Dprefix=$HOME/.local builddir
The rmw binary will be installed to `$HOME/usr/bin` and documentation to
`$HOME/usr/doc`.
or while in the build dir
### If configure fails
meson configure -Dprefix=$HOME/.local
On **OSX**, ncursesw isn't provided by default but can be installed
using `brew install ncurses`. Then precede `./configure` with
`PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig"` Example:
To install:
PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig" ../configure
meson install
If you can't use [brew](https://brew.sh/), or install libncursesw or
libmenuw some other way, rmw will use `ncurses` but you may experience
[this minor
bug](https://github.com/theimpossibleastronaut/rmw/issues/205).
In the example above, the rmw binary will be installed to
`$HOME/.local/bin` and documentation to `$HOME/.local/doc`.
Note: rmw was built on **Windows** 2 years ago using Cygwin but it
didn't use the proper directories. We have no Windows developers
working on this project and are hoping that some will join soon!. As
stated in the description, the goal of this project is a
"cross-platform" utility; so getting rmw to work on Windows is
still on the TODO list.
### If ncurses can't be found
## Uninstall / Cleaning up
On **macOS**, you may get a message during 'configure' that the menu
library can't be found. The ncurses menu library isn't provided by
default but can be installed using `brew install ncurses`. Then run
'configure' like this:
* make uninstall (uninstalls the program if installed with 'make install`)
* make distclean (removes files in the build directory created by
`configure` and 'make')
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/ncurses/lib/pkgconfig
## Usage
```
== First-time use ==
Or you can install [rmw using
brew](https://formulae.brew.sh/formula/rmw).
After rmw is installed, running `rmw` will create a configuration file
(rmwrc) in $HOME/.config (or $XDG_CONFIG_HOME). Edit the file as
desired.
### Uninstall
== Configuration File ==
ninja uninstall (uninstalls the program if installed with 'ninja install`)
Documentation explaining the configuration can be found in your config
file.
Note that if using Meson version < 0.60.0, uninstall does not remove
any language files that were installed. To remove them:
Waste folders will be created automatically; e.g. if '$HOME/.local/share/Waste'
is uncommented in the config file, these 3 directories will be created:
$HOME/.local/share/Waste
$HOME/.local/share/Waste/files
$HOME/.local/share/Waste/info
If one of the WASTE folders is on removable media, then the user has the
option of appending ',removable'.
If a folder has ',removable' appended to it, rmw will not try to create
it; it must be initially created manually. If the folder exists when
rmw is run, it will be used; if not, it will be skipped. Once you
create "example_waste", rmw will automatically create
example_waste/info and example_waste/files
e.g.: WASTE=/mnt/sda10000/example_waste, removable
== Features and Options ==
Usage: rmw [OPTION]... FILE...
ReMove the FILE(s) to a WASTE directory listed in configuration file
or: rmw -s
or: rmw -u
or: rmw -z FILE...
Restore FILE(s) from a WASTE directory
-h, --help
-c, --config filename use an alternate configuration
-l, --list list waste directories
-g, --purge run purge even if it's been run today
-o, --orphaned check for orphaned files (maintenance)
-f, --force allow purge to run
-e, --empty completely empty (purge) all waste folders
-r, -R, --recursive option used for compatibility with rm
(recursive operation is enabled by default)
-v, --verbose increase output messages
-w, --warranty display warranty
-V, --version display version and license information
===] Restoring [===
-z, --restore <wildcard filename(s) pattern> (e.g. ~/.local/share/Waste/files/foo*)
-s, --select select files from list to restore
-u, --undo-last undo last ReMove
== Purging ==
If purging is 'on', rmw will permanently delete files from the folders
specified in the configuration file after 'x' number of days. Purging can be
disabled by using 'purge_after = 0' in configuration file. rmw will only check
once per day if it's time to purge (use -g to check more often).
The time of the last automatic purge check is stored in `purge-time`,
located in $HOME/.local/share/rmw (or $XDG_DATA_HOME/rmw).
== -e, --empty ==
Completely empty (purge) all waste folders
== -u, --undo ==
Restores files that were last rmw'ed. No arguments for `-u` are
necessary. The list of files that were last rmw'ed is stored in `mrl`, located in
$HOME/.local/share/rmw (or $XDG_DATA_HOME/rmw).
== -z, --restore ==
To restore a file, or multiple files, specify the path to them in the
<WASTE>/files folder (wildcards ok).
e.g. 'rmw -z ~/.local/share/Waste/files/foo*'
== -f, --force ==
A change from previous versions, purge is allowed to run without the '-f'
option. If you'd rather require the use of '-f', you can add the line
'force_required' in your configuration file.
rmw will refuse to purge directories if they contain non-writable
subdirectories. You can use -f 2 times if you ever see a message that tells
you "permission denied; directory still contains files" (e.g. rwm -gff).
```
sh uninstall_langs.sh

View file

@ -2,7 +2,7 @@
#
# Slackware build script for rmw
#
# Copyright 2019-2021 / Andy Alt / United States
# Copyright 2019-2022 / Andy Alt / United States
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rmw
VERSION=${VERSION:-0.7.06}
VERSION=${VERSION:-0.8.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@ -79,17 +79,20 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--mandir=/usr/man \
--localedir=/usr/share/locale \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
mkdir build
cd build
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
meson .. \
--buildtype=release \
-Dstrip=true \
--mandir=/usr/man \
--prefix=/usr \
--localedir=/usr/share/locale \
-Ddocdir=/usr/doc/$PRGNAM-$VERSION
ninja
DESTDIR=$PKG ninja install
cd ..
#
# rmw no longer searches for a system-wide config file

View file

@ -1,8 +1,8 @@
PRGNAM="rmw"
VERSION="0.7.06"
VERSION="0.8.1"
HOMEPAGE="https://remove-to-waste.info/"
DOWNLOAD="https://github.com/theimpossibleastronaut/rmw/releases/download/v0.7.06/rmw-0.7.06.tar.gz"
MD5SUM="9b5e0fcda2e32b1886efd50030e51a5e"
DOWNLOAD="https://github.com/theimpossibleastronaut/rmw/releases/download/v0.8.1/rmw-0.8.1.tar.gz"
MD5SUM="f27b7de24fec27832d2fba2091ab02f8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""

View file

@ -9,11 +9,11 @@
rmw: rmw (command line trash can/recycle bin)
rmw:
rmw: rmw (ReMove to Waste) is a safe-remove utility for the command line.
rmw: Its goal is to conform to the FreeDesktop.org Trash specification and
rmw: therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
rmw: integration is optional however, and by default, rmw will only use a
rmw: waste folder separated from your desktop trash. One of its unique
rmw: features is the ability to purge files from your Waste/Trash
rmw: It can move and restore files to and from directories specified in a
rmw: configuration file, and can also be integrated with your regular
rmw: desktop trash folder (if your desktop environment uses the
rmw: FreeDesktop.org Trash specification). One of the unique features of
rmw: rmw is the ability to purge items from your waste (or trash)
rmw: directories after x number of days.
rmw:
rmw: Homepage: https://remove-to-waste.info/