rfm - RepRapFirmware FileManager [duetbackup successor]
-
Release v1.0.0
And here comes the first official release v1.0.0.
Release Notes
This release implements all functions listed in README.md, i.e. it can
- download files
- upload files and folder
- backup (like
duetbackup
did before but slightly different and simplified syntax) - list directory contents
- move or rename files and directories
- create directories
- delete files and directories
This covers all functions of the HTTP interface.
Also it is capable of handling multiple devices via an automatically managed configuration file.
As usual there are releases for Linux x86_64, Windows x86_64, MacOS X x86_64, Linux ARM and Linux ARM64.
-
@wilriker
Thank you very much for the release. Well done. I'll test it today when i'm at home.
Especially i like the way you implemented the multi-device handling. -
@mloidl Thanks!
Re device handling: I tried to make it as automagically as possible for the user and hope it will be useful like that.
But as always: all feedback is welcome.
-
@wilriker Tested 1.0.0 and everything worked perfect.
But i have one question. Is there any reason for not creating the rmf.toml as hidden file? -
@mloidl said in rfm - RepRapFirmware FileManager [duetbackup successor]:
But i have one question. Is there any reason for not creating the rmf.toml as hidden file?
None in particular. At least none other than symmetry. On Linux and MacOS it's simple by just prefixing the filename with a dot. But on Windows I would have to access file system attributes to achieve that. So I dropped this idea (that I also had in the beginning). Of course I could change the name to
.rfm.toml
and on Windows it would just have this name without being hidden.EDIT: I just researched how to create hidden files with Go on Windows and stumbled across an open bug that says opening hidden files on Windows for write access fails with an error. So even if I got it somehow hidden I could never edit it after that anymore.
EDIT2: The above bug does not apply since I write the new settings to a temporary file and only if that was successful I overwrite the existing one with the new one so that in case writing the file fails I do not jeopardize the current settings. Still I rather don't want to go to the length of hiding the file on Windows specifically.
-
I have just tried this, and getting "Unable to save configuration to rfm.toml. The process cannot access the file because it is being used by another process."
This is on Windows 10, 64bit.
Just a suggestion, why not store the file in the same directory as the rfm file? Since it is a self-contained executable, I keep it in a folder, with the backup folders as sub-folders of the main folder. The idea is that I keep regular backups of this whole folder (with the rfm executable), and simply know that everything is there.
Currently I have plain text files with the commands I run (for my machines), to simply copy/paste, inside of this main folder.
-
@jacotheron said in rfm - RepRapFirmware FileManager [duetbackup successor]:
I have just tried this, and getting "Unable to save configuration to rfm.toml. The process cannot access the file because it is being used by another process."
That's not how it is supposed to be. I'll have to check if I forgot to release the file at some place. It should definitely not block itself.
Just a suggestion, why not store the file in the same directory as the rfm file? Since it is a self-contained executable, I keep it in a folder, with the backup folders as sub-folders of the main folder. The idea is that I keep regular backups of this whole folder (with the rfm executable), and simply know that everything is there.
The reason for that is that the executable might be in a directory where the user does not have write permissions, e.g. if I install it in Linux to
/usr/local/bin/rfm
(actually I do) so that it is accessible by every user of the system. The same goes forC:\Windows\*
orC:\Program Files\*
. If anyone wants to do that they should be able to. The only place where the user always has write permissions is the user's home directory. -
@jacotheron I found something that might be the reason for the error message you are seeing. I uploaded a possible fix to my Dropbox. Can you please test if this issue still occurs in that version?
-
I have just tested the new version, and it worked - no issues found. The devices file was made and saved.
-
@jacotheron Thanks for confirming. I will do an official bug fix release tomorrow.
-
Release v1.0.1
Bug fix release to fix the issue where on Windows
rfm.toml
would not be overwritten. Get it at GitHub Releases page. -
Hey Manuel, rfm has been working great for me but is there any chance you could automatically exclude the "System Volume Information" directory or maybe save excludes in the rfm.toml file?
-
@gtj0 I'll think about something.
Meanwhile you can also use
rfm
to just delete this stupid folder. It doesn't serve any purpose in the first place. I don't think that removable media are supposed to even have this folder. -
@gtj0 Here you go
Release v1.1.0-RC1
Get it at the GitHub Releases page.
This release implements the persisting of
-exclude
parameter values inrfm.toml
. These parameters will be persisted separately forbackup
andupload
command so they do not confuse each other.A new keyword
reset
has been added as a recognized value for the-exclude
parameter to delete all persisted excludes for the current command, i.e.rfm backup -exclude reset ...
will remove all persisted excludes for the
backup
command. Further-exclude
parameter after that (even in the same command) will add new excludes.Note that order is relevant, i.e.
rfm backup -exclude 0:/gcodes -exclude reset backup-dir 0:/
will backup everything in 0:/ since the given exclude for
0:/gcodes
was reset by the following-exclude reset
parameter. -
Is -removeLocal working?
./rfm backup -domain duet0 -removeLocal /tmp/duet0 /
...
Removing no longer existing files in /tmp/duet0/gcodes
But it doesn't actually remove any files from the local filesystem.
-
@gtj0 Last time I checked it worked. It will only remove local files that do not exist anymore on remote (like
-delete
forrsync
). I will check tomorrow if something is broken with it. -
@gtj0 You were right,
-removeLocal
was broken for removed files (it worked for removed directories). So here isRelease v1.1.0-RC2
This fixes broken
-removeLocal
parameter of thebackup
sub-command that did not delete files locally.Get it at the GitHub Releases page.
-
Hi wilriker,
I hate to sound stupid, but how do I use it? Where do I put the files? And how do I access it? My system is Windaze 7 PC and a DUET-EtherNet controller.
Thanks in advance...3mm
-
Yep, -removeLocal now works.
You can't specify the remote directory as0:/
any more though. Not sure if this is intentional or not.$ ./rfm backup -domain duet0 /tmp/duet0 0:/ 2019/07/30 05:49:53 Fetching filelist for 0:/0: 2019/07/30 05:49:53 Directory not found
Doesn't matter to me, not sure if it's matter to others.
-
@3mm You download the release for your operating system. For Windows that would be
rfm-windows_amd64.zip
. Then you unpack that to a location of your choice. It is a command-line tool so you have to opencmd
and navigate to the directory where you unpackedrfm
to (alternatively: in Explorer right click while holding shift in the directory whererfm.exe
is located - this should provide a context-menu entry to open a command line in this directory).There you can simply run
rfm help
to get an overview and the available sub-commands. With
rfm help <subcommand>
you can see individual parameters of each sub-command.