Devlog
From metashell
Contents |
2008-01-27 - Justin M. Wray
Version 0.04 of metashell has been released! This is a beta release, please provide feedback.
The metashell Development Team is proud to bring to you, a brand new version of metashell. This new released is filled with bug fixes, exciting new features, and much more.
Here is a quick run-down of the changes:
- Code clean-up
- Fixed tilda (~) vs /home/ Handling
- Rewrote Configuration Editing Engine (now OS binary independent)
- auto-install bug fixes - (0.03 release is broken)
- Added directory listing of filetypes (filetype and wildcards)
- Added auto-update - will update metashell, without changeing configuration
- First Binary Release (using par-binary)
- Cleanup of Error Handling
This released has incorporated a handful of code overhauls, cleaning the code, and reorganizing the flow of execution, limiting the work involved with code execution. One of the most important goals of metashell, is to stay lightweight. Doing so requires, clean and modular code, that has a small footprint. Each and every condition, execution, check, and string is carefully check to ensure it absolutely must run, and at the right time. This is to ensure metashell stays small and lightweight.
A quick and simply shortcut that is so important in the Linux environment is the ~ (tilda). This short sweet operator, allows you to manipulate your home directory without typing the entire filepath. However prior versions would not correct handle files that contained a tilda within the filename. This has been corrected in the 0.04 version.
The old configuration editing engine (versions 0.03 and prior) required either nano or vim, and it expected each to be in a specific location. Although it was modular enough to determine which was installed (and defaulted to nano if both were installed), this is not very portable. And requires very specific binaries in an exact location, something that may cause metashell to break on some systems. Another goal of metashell is portability and self-containment. metashell should not require anything to be installed on your system (excluding the dependencies -- unless you are using a binary version). Therefore this revision has corrected this problem. The engine has been re-written, so that it is self-contained, and the configuration file will open in your default "text/plain" editor.
One of the features within the source package (and the binary package) is the auto-install. This allows one to simply run the script, and metashell will be installed and setup with default configurations. However, there were a few errors in the 0.03 version, and they have been corrected. You should be able to run 'auto-install' and everything should install correctly. In addition current configurations are backed-up to a backup directory (which is located in the unarchived directory). This will allow you to move them back if you wish.
Instead of running the 'auto-install' script and moving your configurations back in place, you can simply run 'auto-update' which will only update the /bin/msh file, instead of all package related files.
The most important peice of information needed while configuring your default applications within metashell is the filetype. The built-in command 'filetype' gives you exactly that, the filetype of a file. This can then be used when setting up the default application. However a limitation of the filetype routine was the lack of a wildcard handler. Meaning you had to check filetypes one at a time. Obviously this is not an acceptable option, as you may need to know the type for every file within a directory. Therefore you can now check filetypes for all files by using a wildcard. Note however, that this only works on your current directory.
In addition to the typical code-cleanup, this release has improved error handling, with much more helpful error messages. Helping you, help us, help yourselves. We hope these new messages will cause errors to be easier to diagnose and correct.
The most important update within this release, is less of an update, and more of a release medium/type. metashell is now being packaged and provided in a binary format (currently only for the i386 and x86_64). The binaries are packaged using a binary version of a Perl Archive (PAR). Working much like a JAR (java archive). The file originally contains the metashell source, all libraries, and dependencies, as well as perl its self. The file is then linked, and an executable is created. Once run, the entire PAR is decompressed, and put in a temporary location, where the source, libraries, and dependencies are called. This allows users to use metashell without installing one dependency, not even perl. I hope this will help metashell be as user friendly as possible.
The ease and ability of a command-line shell has never been looking so great! We hope you enjoy using metashell, as much as we enjoy producing it for you!
Please be sure to visit http://www.themetashell.com for more information, documentation, and much more.
Thanks! The metashell Development Team --Justin M. Wray (Project Owner) 02:19, 27 January 2008 (PST)
2008-01-26 - Justin M. Wray
Working on the 0.04 release. Here is a quick list of updates you will be seeing:
- Cleanup of Error Handling
- Fixed tilda (~) vs /home/ Handling
- Added directory listing of filetypes (filetype and wildcards)
- Rewrote Configuration Editing Engine (now OS binary independent)
- Code clean-up
- First Binary Release (using par-binary)
- auto-install bug fixes - (0.03 release is broken)
The new release is nearing a finish, please be sure you drop an email to me if you have any suggestions or comments.
I also wanted to share with you the post on Source Forge. Enjoy.
Directly from the Source Forge News Post:
Version 0.03 of metashell has been released!
The metashell Development Team is proud to bring to you, a brand new version of metashell, filled with bug fixes, exciting new features, and much more.
Here is a quick run-down of the changes:
- Fixed PATH execution security flaw
- Corrected errors with using ~ (home path) in command
- Added Aliases
- Added ~/.msh_apps for default applications
- Added ~/.msh_aliases for command aliases
- Removed need for "whereis" (linux binary)
- Rewrote Configuration Engine
- Rewrote PATH completion
This version brings you the exciting feature of "aliases", a beloved feature on almost any system. The use of aliases, allows you to replace a commonly type command with an over complex counter-part. This is just one of the features metashell has your to make the command-line a easy, but powerful experience.
In addition to the powerful new alias feature, the 0.03 version also fixes a minor security flaw, in the path execution module. The flaw would basically allow local-command execution, if a script/binary was placed in your working path, that was named the same as system binary. (The same flaw exists on every Windows operating system, and on any shell in unix when the dot (.) is placed in your PATH). Either way, security is of up most importance to the development team. Therefore a new routine was developed to work around this flaw. Just be sure, no matter what you keep track of the files on your system, and don't run arbitrary scripts/binarys, and trust your source.
Part of the bug in the old (prior to version 0.03) release, was the dependency on 'whereis' a Linux binary. However, one goal of metashell is modularity. And the ability to run on any *nix system. Even if you don't have the same binaries install. Therefore the only dependencies should be the perl modules and perl it's self. This dependency has been removed with the routine re-write.
Some other minor code clean-up was completed as well. With metashell currently being in a beta state, the development team is hard at work at providing features and fixing bugs. But at the same time, would like to keep the code clean and secure. Before the first major release (non-beta) there will be a mass overhaul of all routines and modules, to ensure the code is as clean, compact, and documented, as well as can be.
The Development Team has worked hard to provide the community with as documentation and resources as possible. With the addition of a Documentation Section on the website. You will already find the section populated with some very important information.
In addition to the Documentation section, some the HowTo section now holds some information to help you get metashell setup and working for you.
The ease and ability of a command-line shell has never been looking so great! We hope you enjoy using metashell, as much as we enjoy producing it for you!
Please be sure to visit http://www.themetashell.com for more information, documentation, and much more.
Thanks! The metashell Development Team
--Justin M. Wray (Project Owner) 11:20, 26 January 2008 (PST)
2008-01-25 - Justin M. Wray
Version 0.03b has been released.
The new version brings a handful of updates, and a few more features. Be sure to check it out (available from the normal locations).
In addition to finishing the 0.03b release, a few updates across the site have been pushed out. Documentation has been added, and a few other resources. Check them out, and be sure to add anything that is missing!
So far everything is going great, the 0.03b release has a handful of changes by request from community members, so please keep the trend going. If you have any suggestions, please let us know! Thanks.
--Justin M. Wray (Project Owner) 1707, 25 January 2008 (GMT)
2008-01-24 - Justin M. Wray
UPDATE: I have completed "aliases" and the configuration portion of the wish-list below. We are now working on the update script, and are looking into PAR for binary packages, which will end up being our "main" release package. In addition the major (security) PATH bug has been fixed. Either way, expects a new release sometime later today, or early tomorrow.
A few updates, a slew of downloads, and announcements galore, we still stand!
Today has consisted mostly of community interaction. I have had a good amount of constructive feedback (no negative feedback so far!). In addition, the beta release was syndicated across a handful of websites. Thanks to everyone who linked to the release!
I've made a good amount of "website" updates as well, you can now find a Documentation Section (under help) which will contain official and community-supported documentation for the project. If you have something to add, please by all means, do so! Hopefully between the FAQ's and the Doc's we can answer the majority of the basic (FAQ's) and advanced (Doc's) questions and concerns.
Just for another sneak peak...updates/features to come:
- Reorganization of the Shell Configurations
- Update script, so you can upgrade to a new release, without losing configurations, etc)
- Aliases
I hope to have these features added, and released in the next few days, with a few bug fixes. If you have any other suggestions or comments, please pass them along!
Thanks for all of the support!
--Justin M. Wray (Project Owner) 1102, 24 January 2008 (GMT)
2008-01-23 - Justin M. Wray
UPDATE: THE BETA HAS BEEN RELEASED! Please see the download page.
UPDATE 2: After some bug fixes, and changes, there has been a change in the dependencies, you now also need: File::Spec::Link
Today was a rather productive day, if not the most productive for this project.
I have a fully working "beta" ready for release. With just a few more changes (just need to remove some debugging information and clean some things up), I'll have a release uploaded.
Just to give everyone a sneak peak...the entire shell is written in perl, and this has the following dependencies:
- Perl
- Perl Modules
- Term::ReadLine
- File::MimeInfo
Most Linux distributions have these individually packaged, if not you can obtain them all from CPAN.
Hope to have the release up soon. Enjoy.
--Justin M. Wray (Project Owner) 0253, 23 January 2008 (GMT)
2008-01-22 - Justin M. Wray
WOW! It has been a while. Almost a year!
Let me just take a moment, to make a statement, the project is far from dead!
This past year has been filled with an array of business, both relating to the this project and a lot more that did not. But as each member of the team became busier and busier with personal life, the projects development came to a standstill.
But, I have good news, I have picked up the pieces and we are yet again working on a release. Currently we are working to create a modular beta version of metashell that is completely written in perl.
So here is to a new year! And perl!
--Justin M. Wray (Project Owner) 0519, 22 January 2008 (GMT)
2007-01-12 - Justin M. Wray
Yesterday I didn't have much time to work on the project, as I had plans for the night. As well the weekly dev-meet (where the Project Manager and I get together to work on the Project) was canceled. I was slightly bummed as nothing got done yesterday. That was until came to work today to find a lovely email in my inbox from Christian Grothoff.
Christian is the creator of libextractor. I had messaged him (or more like the entire libextractor mailing list) asking about a small but show-stopping problem we were facing with libextractor and our project.
Christian replied with an answer, and it appears we are now well on our way to a release. libextractor is very modular, and requires new plugins for unknown filetypes. We will work closely with the libextractor team, and attempt to get most mainstream types recognized.
There WILL be an update later today.
UPDATE: Okay, well I have it returning the metatype! YEAH! Now, we have a few problems as far as NULL's etc. Not a big deal, just need to make some changes, will work on that ASAP.
--Justin M. Wray (Project Owner) 05:30, 12 January 2007 (PST)
2007-01-10 - Justin M. Wray
Today consisted of mainly site updates, the help section has been hammered out, as well a few FAQ's.
In addition the Development Mailing List is now fully working, which is a very good sign.
As far as code goes, I am pre-maturely written a post, as I am "getting" ready to start coding again. We have only two show stoppers, and neither are major issues, and should be easily fixed. I'll see what I can do and update this post later tonight, I hope.
--Justin M. Wray (Project Owner) 18:34, 10 January 2007 (PST)
2007-01-09 - Justin M. Wray
First Dev Post!
Today I setup the website (yes installing MediaWiki is that hard, well it is on SF -- Okay not really). But thus far that is what I have worked on today. I am going to start working out some of the bugs, as soon as I get some food.
Don't worry we are very very close to a beta release. I think we may release a version that does NO meta type verification, in other words, its just a limited shell, not a lot of features, but it does work. This was we can hammer out the "regular" shell bugs first, before we make the magic.
So look for a release coming very soon. Maybe we'll surprise you with some meta-magic, who knows.
So, onward and upwards, we have three issues to hammer out. libextractor returning the type as a string, needed for the meta-magic (new coin phrase?). Null terminating a "String Array" (trust me it is harder then you think). Work out readline support and history (makeing the shell friendly again?). Then we will be well on our way to a release.
Look back here on the Dev Log for more tid-bits from us loving developers, and well as interesting news about the project.
UPDATE: Fix some bugs with the site, and added more content, mainly fixing broken links.
--Justin M. Wray (Project Owner) 18:07, 9 January 2007 (PST)