MSM was invoking 'sudo chown' every time it installs new skills.
However the skill folder is already under the correct user when it
has been installed this way, so the chown is unnecessary. Now we
check for the user and group before performing the action.
On a Raspbian platform, MSM was attempting to perform a 'sudo chown'
on the skill folder after the install using a sudo command. When
running inside mycroft-core as the 'mycroft' user, there is no
'sudo' permission. However, this step isn't even needed since the
user installed as mycroft and the folder has the correct permissions.
Now it checks the user and group before attempting to perform the
action.
Semi-major rework of the Mycroft Skill Manager (MSM), including:
* Add parse skill name strings support for quoted strings, e.g.:
msm install "daily meditation"
Previously it would search for "daily" and also search for
"meditation", but both independently.
* All commands return distinct error codes. Commands with
that perform multiple things, such as 'msm default' will
continue on a failure of one skill and return the highest
error code ultimately.
* Add 'msm remove', essentially the inverse of 'msm install'
* Changed the example install URL to a penrods repo since the
ethanward repo no longer exists.
* Reworked skill list caching to behave properly with $( )
subprocess operations.
* Output for "install" and "remove" is now between hyphen
lines, making them easier to parse.
* Revamped many informational and error messages
* Published under Apache 2.0 license
A corresponding update to the skill-installer will take
advantage of these changes.
==== Tech Notes ====
fallback-aiml was added to list of default skills in msm and the
requirement aiml==0.8.6 was added to requirements
==== Documentation Notes ====
NONE - description of a new feature or notes on behavior changes
==== Localization Notes ====
NONE - point to new strings, language specific functions, etc.
==== Environment Notes ====
NONE - new package requirements, new files being written to disk, etc.
==== Protocol Notes ====
NONE - message types added or changed, new signals, APIs, etc.
Clean-up of many things about MSM:
* Improve help message, documenting all options
* Make the DEFAULT_SKILLS list readable (wrapped lines)
* Prefix messages with ERROR or WARNING
* Fix return codes, they can't be > 255. 301 and 303 are now 201 and 203
* Cache list of skills (instead of hitting web repeatedly)
* Improve code spacing, comments
* Improve format of output messages
* Sort skills from 'list' and 'search' commands
* Return result codes (was always 0)
==== Tech Notes ====
The "install" skill will be updated to use result codes instead
of searching for specific message strings. It was already
broken due to mismatch of the success message string.
==== Localization Notes ====
With error codes, output strings are less important
==== Fixed Issues ====
#966
==== Tech Notes ====
Adds a basic manual page for msm, required for packaging for some OS'es
==== Documentation Notes ====
NONE
==== Localization Notes ====
Might need translation at some point
==== Environment Notes ====
msm/man1/msm should be copied into the manual man1 directory
(/usr/local/share/man/man1) and mandb needs to be run after a package
install.
==== Protocol Notes ====
NONE