rfm - RepRapFirmware FileManager [duetbackup successor]



  • I have already mentioned it in the duetbackup thread that I am working on a largely extended version of it and here it is. I call it

    rfm - RepRapFirmware FileManager

    It can be used to perform all file and directory actions available via RepRapFirmware's HTTP interface.

    Usage

    $ ./rfm help
    rfm provides a command-line interface to perform file actions
    against the HTTP interface of a device running RepRapFirmware.
    
    Usage:
            rfm <command> [arguments]
    
    Each command will at least expect the argument -domain which
    specifies where on the network the device is located. This can
    either be a resolvable hostname or an IPv4 address.
    
    The commands are:
            backup     Backup a given directory on the device
            upload     Upload local files/directories to the device
            mkdir      Create a new directory on the device
            mv         Rename/move a file/directory on the device
            rm         Remove a file/directory on the device
            download   Download a single file from the device
            fileinfo   Get information on a file
            ls         Show the file tree of a given path
    
    Use "rfm <command> -help" for more information about a command's
    arguments.
    

    Notes

    • With the release of this tool duetbackup will be deprecated and discontinued
    • Watch this thread for announcements of new releases
    • Give any feedback here - whether bugs you found or possible changes

    Source

    As usual this is open source and (as usual for me) it is implemented in Go. Sources as well as releases can be found at GitHub and the Releases page respectively.



  • Yay! Keep these things going...



  • Release v1.0.0-RC1

    I have released v1.0.0-RC1 that implements all of the above commands but might still contain some (hopefully) minor issues.

    For those coming from duetbackup the sub-command rfm backup will do what duetbackup did before.

    Please let me know about all issues you find. These also might include where the output is confusing/insufficient.



  • @wilriker is this release just for windows at the moment?



  • I would like the express my interest in this awesome project. The RPi that accompanies my printer is perfect to make scheduled backups.



  • I'm sorry but you don't have enough "R"s or "F"s in there. Should be "rrffm" 🙂



  • @dougal1957 No, it's for the same platforms asduetbackup was, i.e. Windows, Linux and Mac amd64 as well as Linux arm (e.g. Raspberry Pi) and arm64 (some other SBC boards).



  • @gtj0 Believe me, you don't want that. 😂 It was the working title while development. It's a PITA to type and typo guarantee. 😁

    P.S.: a friend of mine asked if I can somehow get a "t" in there and some letter swapping to get rtfm. 😂



  • @nxt-1 I also use a RPi to perform the backups. In case you have Arch Linux running on your Pi: I plan to make an AUR package as well.



  • @wilriker said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    @gtj0 Believe me, you don't want that. 😂 It was the working title while development. It's a PITA to type and typo guarantee. 😁

    P.S.: a friend of mine asked if I can someone get a "t" in there and some letter swapping to get rtfm. 😂

    That was going to be my next suggestion.



  • @gtj0 said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    That was going to be my next suggestion.

    Feel free to fork and rename it. 😂



  • Hi @wilriker,

    Found a small "issue".
    If rfm is called with no arguments (I know it should not called with no args), the program exit with panic because of an invalid array access (function args). Better would be to show a proper message.

    Further tests are outstanding. I had not the time to test it yet.

    Regards,
    Martin



  • @mloidl Thanks! I fixed it in the source code and it will be in the next release.

    Probably also in the next release will be a couple of changes

    • Parameters relevant for connection (i.e. domain, port and password) can be put into a file in the user's home directory so they don't have to be provided on the command line everytime
    • Some parameters that are currently given as -parametername value will be shortened to just value but then have to follow a strict ordering in case there is more than one (this resembles more common CLI tools)
    • Adding help pages similar to the main help output for sub-commands


  • @wilriker thanks for the quick fix.

    Regarding config file for connection parameter:
    For users having multiple duet-based printers it would be cool to to store all these connections settings domain, port and password in a kind of connection group.
    e.g.

    [printer1]
    domain=<printer1-ip>
    port=<printer1-port>
    password=<printer1-pw>
    
    [printer2]
    ....
    

    Usage then could be rfm -device printer1 <cmd>

    I did something similar in a python-based backup script for my daily backups and found this very useful.

    What's your opinion about this?



  • @mloidl I like that and will implement something like this. But even though I listed it first it's currently last in priority. 😉


  • administrators

    @wilriker My vote goes for RepRapFirmware Total File Manager



  • @t3p3tony said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    @wilriker My vote goes for RepRapFirmware Total File Manager

    Yeah, that's what I thought of, too. 😂

    Also another good idea might be
    "[File-]Resource Manager for RepRapFirmware-based Filesystems" -> rm-rf 🤣
    (Windows user's probably won't get this one)



  • You are evil! I wonder if anyone would even dare to use the tool in Linux then.



  • @wilriker said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    @t3p3tony said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    @wilriker My vote goes for RepRapFirmware Total File Manager

    Yeah, that's what I thought of, too. 😂

    Also another good idea might be
    "[File-]Resource Manager for RepRapFirmware-based Filesystems" -> rm-rf 🤣
    (Windows user's probably won't get this one)

    I "googled" that and came up with "force deletion of everything in the root directory". That's the equivalent of a "nuke" button isn't it?



  • @obeliks said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    You are evil! I wonder if anyone would even dare to use the tool in Linux then.

    I was trying hard to find any reason to also add a / at the end to make it even more evil. 😂 And top class would be to get sudo prepended. sudo-rm-rf/. Perfect name for any tool on Linux. 🤣



  • @deckingman said in rfm - RepRapFirmware FileManager [duetbackup successor]:

    I "googled" that and came up with "force deletion of everything in the root directory". That's the equivalent of a "nuke" button isn't it?

    More or less. There are some protections in place but if you run

    rm -rf / [note the spaces]
    

    either as root user (admin user with full privileges in Linux) or prepend it with sudo (which will provide a regular user with root-rights) it will do exactly that. It will erase all contents of your hard-drive and depending on the configuration also of all mounted external drives. Not as fast as a giant hammer but fast enough to have made probably unrecoverable damage until you notice.


Log in to reply