From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: Finding simpler better sudo for Emacs Date: Tue, 30 Mar 2021 14:05:19 +0300 Message-ID: References: <87blb13vr8.fsf@gmx.de> <877dlp3q61.fsf@gmx.de> <8735wd3p7h.fsf@gmx.de> <87y2e43odh.fsf@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10961"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.0.6 (2021-03-06) Cc: Help GNU Emacs To: Michael Albinus Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Mar 30 13:07:34 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lRCDd-0002k1-RF for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 30 Mar 2021 13:07:33 +0200 Original-Received: from localhost ([::1]:59822 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lRCDc-0001NU-Ss for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 30 Mar 2021 07:07:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36164) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lRCCm-00015W-EG for help-gnu-emacs@gnu.org; Tue, 30 Mar 2021 07:06:41 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:35279) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lRCCh-0007ag-0W for help-gnu-emacs@gnu.org; Tue, 30 Mar 2021 07:06:39 -0400 Original-Received: from localhost ([::ffff:41.202.241.58]) (AUTH: PLAIN securesender, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000027ECE.0000000060630637.00006D82; Tue, 30 Mar 2021 04:06:31 -0700 Mail-Followup-To: Michael Albinus , Help GNU Emacs Content-Disposition: inline In-Reply-To: <87y2e43odh.fsf@gmx.de> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:128763 Archived-At: * Michael Albinus [2021-03-30 13:53]: > Jean Louis writes: > > > How to check if default directory is on local file system? > > (file-remote-p default-directory) > > nil if you are on your local host, non-nil otherwise. Thank you, this time I was M-x apropos-ing but did not find it so fast. Side note on tramp, I have filed a bug on Dired/Tramp as if there is local directory /scp:static: and I try to enter that directory I am connected with Tramp to my remote static (hostname defined in /etc/hosts or ~/.authinfo) server. But Dired should recognize that marked file was on the local directory and should not go into remote one. In that sense if there is local directory "/scp:static:" then this function does not work well: (file-remote-p "/scp:static:") → "/scp:static:" while you said it should give nil if it is local directory. (file-remote-p "/scp:google.com:") → "/scp:google.com:" -- so this seem that it is checking it by prefix. That means that users are not supposed to make such local directories, for example making a local directory /sudo: or /scp:hostname: and similar would make Tramp fail. Emacs and Tramp rely on improbability that users would never make such local directories. Copy and rename of files into such local directories would probably fail, as Tramp would try to copy it remotely. Regarding my function, I like it to be executed only locally, and I will skip Tramp usage for a while. (defun sudo (arguments) "Executes list ARGUMENTS with system command `sudo'." (let ((not-remote (not (file-remote-p default-directory)))) (if not-remote (let* ((command (format "sudo su -c -- root -c \"%s\"" (string-join (list arguments)))) (return (shell-command-to-string command))) return) (message "This `sudo' does not work on remote directory: %s" default-directory)))) -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns