MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.

How to update.



  • But is there a way (a sh-script) to update MM and all (!) of the installed (different) modules in a batch. I now do have to go through all the directories recursively. That takes lots of time and is quite annoying. Any idea?
    Thx Jimmy



  • I use this script, which comes with no guarantee:

     #!/usr/bin/env bash
    
    cd /home/pi/MagicMirror
    echo "######### CHECKING MAGIC MIRROR ##########"
    git fetch
    if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]
    then
        echo "######### UPGRADING MAGIC MIRROR #########"
        git pull
        npm install
    else
        echo "######## NO UPGRADE REQUIRED #########"
    fi
    echo ""
    
    cd modules
    
    for directory in *; do
        if [[ -d ${directory} && ${directory} != "node_modules" && ${directory} != "default" ]]; then
            echo "######### CHECKING ${directory} ##########"
            cd ${directory}
            git fetch
            if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]; then
                echo "######### UPGRADING ${directory} #########"
                git pull
                if [[ -e "package.json" && -f "package.json" ]]; then
                    npm install
                fi
            else
                echo "######## NO UPGRADE REQUIRED #########"
            fi
            echo ""
            cd ..
        fi
    done
    

  • Module Developer

    @izanbard Thank you for this! 🙂



  • Thank You, awesome !



  • This post is deleted!

  • Module Developer

    @izanbard Hello, added a restart of the mirror (via pm2) if an npm install has been done and also added “–production” to the npm install command. Sometimes the module-developer have lot’s of extra stuff added in the package list just for developing. 🙂
    I’m currently now running this script via CRON every night. 🙂

    #!/usr/bin/env bash
    
    updated=false
    
    cd /home/pi/MagicMirror
    echo "Checking for MagicMirror updates."
    git fetch
    if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]
    then
        echo "Found, updating..."
        git pull
        npm install
        updated=true
        echo "Update done."
    else
        echo "No update needed."
    fi
    echo ""
    
    cd modules
    
    for directory in *; do
        if [[ -d ${directory} && ${directory} != "node_modules" && ${directory} != "default" ]]; then
            echo "Checking for ${directory} updates."
            cd ${directory}
            git fetch
            if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]; then
                echo "Found, updating ${directory}..."
                git pull
                if [[ -e "package.json" && -f "package.json" ]]; then
                    echo "package.joson changed for ${directory}, installing..."
                    npm install --production 
                    updated=true
                    echo "Update done."
                fi
            else
                echo "No update needed."
            fi
            echo ""
            cd ..
        fi
    done
    
    if $updated; then
        echo "Restart of MM needed, restarting now."
        pm2 restart mm
    fi
    echo "All done. :)"
    


  • @izanbard Thank you!!



  • thank u!



  • @batzyn

    pi@akpi:~/MagicMirror $ sudo git pull && npm install
    Updating 8010e62…5c41e24
    error: Your local changes to the following files would be overwritten by merge:
    css/main.css
    Please, commit your changes or stash them before you can merge.
    Aborting
    Any ideas…



  • This post is deleted!

Log in to reply