12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/env bash
- ############################################################################
- # tools/unlink.sh
- #
- # Copyright (C) 2008 Gregory Nutt. All rights reserved.
- # Author: Gregory Nutt <gnutt@nuttx.org>
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- #
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- # 2. Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in
- # the documentation and/or other materials provided with the
- # distribution.
- # 3. Neither the name NuttX nor the names of its contributors may be
- # used to endorse or promote products derived from this software
- # without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- # POSSIBILITY OF SUCH DAMAGE.
- #
- ############################################################################
- link=$1
- # Verify that arguments were provided
- if [ -z "${link}" ]; then
- echo "Missing link argument"
- exit 1
- fi
- # Check if something already exists at the link path
- if [ -e "${link}" ]; then
- # Yes, is it a symbolic link? If so, then remove it
- if [ -h "${link}" ]; then
- rm -f "${link}"
- else
- # If the path is a directory and contains the "fake link" mark, then
- # treat it like a soft link (i.e., remove the directory)
- if [ -d "${link}" -a -f "${link}/.fakelnk" ]; then
- rm -rf "${link}"
- else
- # It is something else (like a file) or directory that does
- # not contain the "fake link" mark
- echo "${link} already exists but is not a symbolic link"
- exit 1
- fi
- fi
- fi
|