summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--LICENSE30
-rw-r--r--README14
-rwxr-xr-xxcopy18
-rwxr-xr-xxpaste17
4 files changed, 79 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..fb0b83c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+BSD 3-Clause License (BSD-3-Clause)
+
+Copyright (C) 2023 dwlr <dweller@cabin.digital>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/README b/README
new file mode 100644
index 0000000..a62c2b9
--- /dev/null
+++ b/README
@@ -0,0 +1,14 @@
+xfileclip
+---------
+
+Copy and paste files to and from your shell and X programs!
+
+
+Dependencies: POSIX shell (like dash) and xclip
+
+Install: just copy and paste `xcopy` and `xpaste` scripts
+ somewhere on your $PATH.
+
+Usage: `xcopy file1 /bin/file2`, then ^V in your GUI program
+ ^C in your GUI program (like file manager) `xpaste`
+
diff --git a/xcopy b/xcopy
new file mode 100755
index 0000000..1795526
--- /dev/null
+++ b/xcopy
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Copyright (C) 2023 dwlr <dweller@cabin.digital>
+#
+# BSD 3-Clause License (BSD-3-Clause)
+# See LICENSE for details
+
+set -e
+
+
+{
+ echo "" # TODO: why does it need a \n before the list?
+
+ for i in "$@"; do
+ echo "file://$(realpath ${i})"
+ done
+
+} | xclip -sel clipboard -i -r -t text/uri-list
diff --git a/xpaste b/xpaste
new file mode 100755
index 0000000..444206f
--- /dev/null
+++ b/xpaste
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# Copyright (C) 2023 dwlr <dweller@cabin.digital>
+#
+# BSD 3-Clause License (BSD-3-Clause)
+# See LICENSE for details
+
+set -e
+
+
+echo "$(xclip -sel clipboard -o -r -t text/uri-list | cut -d':' -f2- | tr -d '\r')" \
+| while IFS= read -r path
+do
+ if [ -e "${path}" ]; then
+ cp -v -r "${path}" "$(basename ${path})"
+ fi
+done