]> Sergey Matveev's repositories - mmc.git/commitdiff
Quick file download
authorSergey Matveev <stargrave@stargrave.org>
Sun, 12 Mar 2023 17:56:01 +0000 (20:56 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 12 Mar 2023 17:56:01 +0000 (20:56 +0300)
cmd/dl [moved from cmd/download with 79% similarity]
cmd/dlpane [new file with mode: 0755]
cmd/start
cmd/tmux.conf
doc/arch.texi
doc/index.texi
doc/usage.texi

similarity index 79%
rename from cmd/download
rename to cmd/dl
index b704d2054010fe8b9d564fd162299144b1e9dbb9..dd9c0292ef6bc2bbb5a1d0222ce458b2c7abda5a 100755 (executable)
+++ b/cmd/dl
@@ -9,6 +9,8 @@ trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
 echo $2 > "$1"/file/get &
 cat "$1"/file/out > $tmp
 mv $tmp $2.tar
 echo $2 > "$1"/file/get &
 cat "$1"/file/out > $tmp
 mv $tmp $2.tar
-echo $2.tar
-tar tvf $2.tar
+tar tvf $2.tar >&2
+realpath $2.tar
+echo -n "x it?"
+read foo
 tar xf $2.tar
 tar xf $2.tar
diff --git a/cmd/dlpane b/cmd/dlpane
new file mode 100755 (executable)
index 0000000..cadbf4f
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+fileId=$(tmux show-buffer |
+    sed -n 's/^.*\[FILE\] \(.*\) (\(.*\))$/\1 \2/p' |
+    fzf |
+    cut -d" " -f1)
+[ -n "$fileId" ]
+tmux delete-buffer
+cmd="$(dirname "$(realpath -- "$0")")"
+state="$PWD"
+cd /tmp
+$cmd/dl "$state" $fileId
+echo extracted
+read foo
index b5e33f91f7d0a8ae454bb8f872e3ef656ff72340..caae3fa4689d6df9e1079bff850851f42736f52b 100755 (executable)
--- a/cmd/start
+++ b/cmd/start
@@ -7,7 +7,10 @@ $TMUX has-session -t mmc 2>/dev/null && exit
 mkdir -p users
 rm -f debug users/status
 mkfifo debug users/status
 mkdir -p users
 rm -f debug users/status
 mkfifo debug users/status
-[ -s tmux.conf ] || sed "s#NEWWIN#$cmd/newwin# ; s#CATFILE#$cmd/catfile#" < "$cmd"/tmux.conf > tmux.conf
+[ -s tmux.conf ] || sed \
+    -e "s#NEWWIN#$cmd/newwin#" \
+    -e "s#CATFILE#$cmd/catfile#" \
+    -e "s#DLPANE#$cmd/dlpane#" < "$cmd"/tmux.conf > tmux.conf
 $TMUX -f tmux.conf new-session -d -n ROOT -s mmc "cat debug | tai64n | tai64nlocal"
 $TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^O:.*" -e cya,"^A:.*" ; sleep 5 ; clear ; done'
 $TMUX split-window -v "$cmd/mmc/mmc -debug debug -user-status users/status -newwin $cmd/newwin -notify $cmd/notify | tai64n | tai64nlocal"
 $TMUX -f tmux.conf new-session -d -n ROOT -s mmc "cat debug | tai64n | tai64nlocal"
 $TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^O:.*" -e cya,"^A:.*" ; sleep 5 ; clear ; done'
 $TMUX split-window -v "$cmd/mmc/mmc -debug debug -user-status users/status -newwin $cmd/newwin -notify $cmd/notify | tai64n | tai64nlocal"
index fc5faceed853a46981a3a6a6419b7ba48a634af6..2a19c28a48876a8e99db839f21a224025ea39b91 100644 (file)
@@ -21,6 +21,10 @@ bind-key Q kill-session
 bind-key c new-window NEWWIN
 bind-key d kill-window
 bind-key S new-window CATFILE
 bind-key c new-window NEWWIN
 bind-key d kill-window
 bind-key S new-window CATFILE
+bind-key D {
+    capture-pane -t 0
+    new-window DLPANE
+}
 
 bind-key -n C-PgUp previous-window
 bind-key -n C-PgDn next-window
 
 bind-key -n C-PgUp previous-window
 bind-key -n C-PgDn next-window
index 15f5cd48ef36c4ea766d7c4f1aa3f9a96252ee7b..15bb7e5fb43aeaee322b42a861ac36b5da413678 100644 (file)
@@ -11,9 +11,6 @@ cmd/start
   R tmux -f tmux.conf
     R tail -f debug | tai64n
     R for { cat users/status ; sleep 5 }
   R tmux -f tmux.conf
     R tail -f debug | tai64n
     R for { cat users/status ; sleep 5 }
-    R fzf **(/) | cmd/newwin
-    R cmd/catfile
-      R fzf **(.) | fmt
     R cmd/mmc | tai64n
      F users/status
      F users/.../{id,email,name,|in,out.rec,|status,last}
     R cmd/mmc | tai64n
      F users/status
      F users/.../{id,email,name,|in,out.rec,|status,last}
@@ -26,8 +23,12 @@ cmd/start
          R cmd/rd < .../out.rec | spc
        R cmd/wr
          R for { rlwrap cat > .../in }
          R cmd/rd < .../out.rec | spc
        R cmd/wr
          R for { rlwrap cat > .../in }
+    R fzf **(/) | cmd/newwin
+    R tmux capture-pane | fzf | cmd/dl
+    R cmd/catfile
+      R fzf **(.) | fmt
 
 
-cmd/download
+cmd/dl
   R echo ... > file/get
   R tar xf < file/out
 
   R echo ... > file/get
   R tar xf < file/out
 
@@ -145,7 +146,7 @@ it sets an alert for window in @command{tmux}.
 
 @end itemize
 
 
 @end itemize
 
-Outside that running @command{tmux} user can use @command{cmd/download}
+Outside that running @command{tmux} user can use @command{cmd/dl}
 utility to download specified file's identifier. It sends it identifier
 to @file{file/get} and reads the archive with that file from
 @file{file/out}. File is sent inside
 utility to download specified file's identifier. It sends it identifier
 to @file{file/get} and reads the archive with that file from
 @file{file/out}. File is sent inside
index 38e7a66fc2fda173585b95c4e31d7e93e2311875..dd882458831841da59204b8231fe7898cc190cc3 100644 (file)
@@ -22,6 +22,8 @@ based frontend with colourized output.
 threading meta information in both human and machine friendly format.
 @item Ability to send and retrieve files. Multiline messages support.
 @item All channels refreshing after the login.
 threading meta information in both human and machine friendly format.
 @item Ability to send and retrieve files. Multiline messages support.
 @item All channels refreshing after the login.
+@item Keybindings for quick channel opening, window selection,
+information viewing and file downloading.
 @end itemize
 
 @command{mmc} is
 @end itemize
 
 @command{mmc} is
index 870fae1b28853db71b3bf636c33de74f97532140..ea0833d702d1e86ec28936f6f6bb77d8d7aa061d 100644 (file)
@@ -42,6 +42,10 @@ prefix is prepended. If message contains appended files, then
 @item By pressing @code{Prefix+S}, list of available files is shown
 inside @command{fzf}, just to quickly display it.
 
 @item By pressing @code{Prefix+S}, list of available files is shown
 inside @command{fzf}, just to quickly display it.
 
+@item By pressing @code{Prefix+D}, list of available file links in
+current window is shown. Choose the desired one and it will be saved in
+@file{/tmp} directory.
+
 @item Status change and typing notifications are shown as a short-lived
 message at the bottom of the screen.
 
 @item Status change and typing notifications are shown as a short-lived
 message at the bottom of the screen.
 
@@ -49,8 +53,8 @@ message at the bottom of the screen.
 @code{/FILE /path/to/file} message.
 
 @item If you want to download some file, then you can invoke
 @code{/FILE /path/to/file} message.
 
 @item If you want to download some file, then you can invoke
-@command{cmd/download FILEID} utility, that will save the file to
-@file{FILEID.tar} archive in current directory.
+@command{cmd/dl path/to/state FILEID} utility, that will save the file
+to @file{FILEID.tar} archive in current directory and extract it.
 
 @item After you just logged in, @command{cmd/mmc} checks for new
 messages since you were offline, if any messages were in the state's
 
 @item After you just logged in, @command{cmd/mmc} checks for new
 messages since you were offline, if any messages were in the state's