GithubHelp home page GithubHelp logo

fdncred / nu_plugin_file Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 5.0 153 KB

A nushell plugin that will inspect a file and return information based on it's magic number.

License: GNU Affero General Public License v3.0

Rust 100.00%
nushell nushell-plugin

nu_plugin_file's Introduction

nu_plugin_file

This nushell plugin will open files to inspect them and report back a little information. It uses magic bytes to determine many file formats. The core code was "borrowed" from a spacedrive crate that I thought looked interesting.

Usage:

 help file
View file format information

Usage:
  > file <filename>

Flags:
  -h, --help - Display the help message for this command

Parameters:
  filename <string>: full path to file name to inspect

Examples:
  Get format information from file
  > file some.jpg
  ╭──────────────┬──────────╮
   description   Image    
   format        jpg      
   magic_offset  0        
   magic_length  2        
   magic_bytes   [FF, D8] 
  ╰──────────────┴──────────╯

Installation

  1. clone repo git clone https://github.com/fdncred/nu_plugin_file.git
  2. install with cargo cargo install --path .
  3. register with nushell register /path/to/nu_plugin_file
  4. inspect a file file some.jpg

nu_plugin_file's People

Contributors

fdncred avatar sweglord227 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

nu_plugin_file's Issues

panic! when not given full path

when file is given the path of a file relative to the working directory, it panics:

~> "hello world!" | save example.txt
~> file example.txt
thread 'plugin runner (primary)' panicked at src/main.rs:88:66:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error:   × Failed to receive response to plugin call from `file`
   ╭─[entry #3:1:1]
 1 │ file example.txt
   · ──┬─
   ·   ╰── while waiting for this operation to complete
   ╰────
  help: try restarting the plugin with `plugin use 'file'`
~> file ~/example.txt
╭──────────────┬──────╮
│ description  │ Text │
│ format       │ txt  │
│ magic_offset │      │
│ magic_length │      │
│ magic_bytes  │      │
╰──────────────┴──────╯
~> file /home/sweglord227/example.txt
╭──────────────┬──────╮
│ description  │ Text │
│ format       │ txt  │
│ magic_offset │      │
│ magic_length │      │
│ magic_bytes  │      │
╰──────────────┴──────╯

this is caught on line 88 by .unwrap(). the if else chain misses the case where it is only given the relative path, and not a full path.

working on a pull request for this now. might be up tonight or tomorrow

Does this violate Spacedrive's license?

Spacedrive is mentioned in the README, and it looks like most of the functional code of this is taken from SpaceDrive, but I don't see any proper attribution. More importantly, Spacedrive is licensed AGPL, which would require this plugin to also be AGPL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.