From fb1530a78fa09c973175937fb1c7da3803ff9f07 Mon Sep 17 00:00:00 2001 From: Josh Rickmar Date: Tue, 14 Oct 2014 13:44:04 -0500 Subject: [PATCH] Remove plan9 rename function. This function was misleading because it was actually *not* atomic (meaning it should have never been used at all where atomicity was required). This will break builds on Plan 9 but I consider this fine to do since the soon-to-be-integrated waddrmgr package relies on bolt as a database and also does not compile for Plan 9. --- rename/rename_plan9.go | 47 ------------------------------------------ 1 file changed, 47 deletions(-) delete mode 100644 rename/rename_plan9.go diff --git a/rename/rename_plan9.go b/rename/rename_plan9.go deleted file mode 100644 index 6de293e..0000000 --- a/rename/rename_plan9.go +++ /dev/null @@ -1,47 +0,0 @@ -// The following is adapted from goleveldb -// (https://github.com/syndtr/goleveldb) under the following license: -// -// Copyright 2012 Suryandaru Triandana -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * 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. -// -// 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 -// HOLDER 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. - -package rename - -import ( - "os" - "path/filepath" -) - -// Atomic provides an atomic file rename. newpath is replaced if it -// already exists. -func Atomic(oldpath, newpath string) error { - if _, err := os.Stat(newpath); err == nil { - if err := os.Remove(newpath); err != nil { - return err - } - } - - _, fname := filepath.Split(newpath) - return os.Rename(oldpath, fname) -}