summary refs log blame commit diff
path: root/pkgs/applications/version-management/git-and-tools/default.nix
blob: 2e99ca666dcd998e54b556568963d914465fb458 (plain) (tree)
1
2
3
4
5
6
7
8
9


                                                                             
                                                 
   
                               


                                                                   
                                                                            
                    
                                                 
                                                     
                                                     
      

    
              
                                           
 

                                                        

                                                                
                                              
 

                                  

                                                  

                              

                                       



                                                   

                                               

                                       
                                               
 
                          
                              

                      
                            
                                     
    
 




                                                               
                                             
 



                                                                             
                                                              
 








                                                             

                                                                      

                                                      

                                      

                                    
 

                                                    
                                        
 

                                          


                                                                  
 

                                            



                                                   

                                      

                                            

                                            

                                                              

                                              

                                        

                                          
                                         
                                                                       

    

                                                  

                                                

                                            

                                              

                                              

                                          

                                              

                                              

                                        

                                        
                                    
 
                                                
 
                                                        
 
                                      
 

                                          

                              
                           
                              

    
                                                    
 

                              

                                        
                                                                                        
 

                                                                      
                                    
 
                               



                                    
                                   
                 

    
                                                                         
 
                              
 
                                    
 
                                            
 
                                                                  
           
                       
                                            


      
/* All git-relates tools live here, in a separate attribute set so that users
 * can get a fast overview over what's available.
 */
args @ {config, lib, pkgs}: with args; with pkgs;
let
  gitBase = callPackage ./git {
    svnSupport = false;         # for git-svn support
    guiSupport = false;         # requires tcl/tk
    sendEmailSupport = false;   # requires plenty of perl libraries
    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
    smtpPerlLibs = [
      perlPackages.libnet perlPackages.NetSMTPSSL
      perlPackages.IOSocketSSL perlPackages.NetSSLeay
      perlPackages.AuthenSASL perlPackages.DigestHMAC
    ];
  };

  self = rec {
  # Try to keep this generally alphabetized

  bfg-repo-cleaner = callPackage ./bfg-repo-cleaner { };

  bitbucket-server-cli = callPackage ./bitbucket-server-cli { };

  darcsToGit = callPackage ./darcs-to-git { };

  delta = callPackage ./delta { };

  diff-so-fancy = callPackage ./diff-so-fancy { };

  ghq = callPackage ./ghq { };

  git = appendToName "minimal" gitBase;

  git-absorb = callPackage ./git-absorb {
    inherit (darwin.apple_sdk.frameworks) Security;
  };

  git-appraise = callPackage ./git-appraise {};

  git-fame = callPackage ./git-fame {};

  gita = python3Packages.callPackage ./gita {};

  # The full-featured Git.
  gitFull = gitBase.override {
    svnSupport = true;
    guiSupport = true;
    sendEmailSupport = true;
    withLibsecret = !stdenv.isDarwin;
  };

  # Git with SVN support, but without GUI.
  gitSVN = lowPrio (appendToName "with-svn" (gitBase.override {
    svnSupport = true;
  }));

  git-annex = pkgs.haskellPackages.git-annex;

  git-annex-metadata-gui = libsForQt5.callPackage ./git-annex-metadata-gui {
    inherit (python3Packages) buildPythonApplication pyqt5 git-annex-adapter;
  };

  git-annex-remote-b2 = callPackage ./git-annex-remote-b2 { };

  git-annex-remote-dbx = callPackage ./git-annex-remote-dbx {
    inherit (python3Packages)
    buildPythonApplication
    fetchPypi
    dropbox
    annexremote
    humanfriendly;
  };

  git-annex-remote-rclone = callPackage ./git-annex-remote-rclone { };

  git-annex-utils = callPackage ./git-annex-utils { };

  git-bug = callPackage ./git-bug { };

  # support for bugzilla
  git-bz = callPackage ./git-bz { };

  git-codeowners = callPackage ./git-codeowners { };

  git-cola = callPackage ./git-cola { };

  git-crypt = callPackage ./git-crypt { };

  git-dit = callPackage ./git-dit {
    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
  };

  git-extras = callPackage ./git-extras { };

  git-gone = callPackage ./git-gone {
    inherit (darwin.apple_sdk.frameworks) Security;
  };

  git-hub = callPackage ./git-hub { };

  git-ignore = callPackage ./git-ignore { };

  git-imerge = callPackage ./git-imerge { };

  git-machete = python3Packages.callPackage ./git-machete { };

  git-octopus = callPackage ./git-octopus { };

  git-open = callPackage ./git-open { };

  git-radar = callPackage ./git-radar { };

  git-recent = callPackage ./git-recent {
    utillinux = if stdenv.isLinux then utillinuxMinimal else utillinux;
  };

  git-remote-hg = callPackage ./git-remote-hg { };

  git-reparent = callPackage ./git-reparent { };

  git-secret = callPackage ./git-secret { };

  git-secrets = callPackage ./git-secrets { };

  git-standup = callPackage ./git-standup { };

  git-stree = callPackage ./git-stree { };

  git-subrepo = callPackage ./git-subrepo { };

  git-subtrac = callPackage ./git-subtrac { };

  git-sync = callPackage ./git-sync { };

  git-test = callPackage ./git-test { };

  git2cl = callPackage ./git2cl { };

  gitFastExport = callPackage ./fast-export { };

  gitRemoteGcrypt = callPackage ./git-remote-gcrypt { };

  gitflow = callPackage ./gitflow { };

  gitstatus = callPackage ./gitstatus { };

  grv = callPackage ./grv { };

  hub = callPackage ./hub {
    inherit (darwin) Security;
  };

  hubUnstable = throw "use gitAndTools.hub instead";

  lab = callPackage ./lab { };

  lefthook = callPackage ./lefthook { };

  pre-commit = pkgs.python3Packages.toPythonApplication pkgs.python3Packages.pre-commit;

  pass-git-helper = python3Packages.callPackage ./pass-git-helper { };

  qgit = qt5.callPackage ./qgit { };

  stgit = callPackage ./stgit {
  };

  subgit = callPackage ./subgit { };

  svn2git = callPackage ./svn2git {
    git = gitSVN;
  };

  svn-all-fast-export = libsForQt5.callPackage ./svn-all-fast-export { };

  tig = callPackage ./tig { };

  topGit = callPackage ./topgit { };

  transcrypt = callPackage ./transcrypt { };

} // lib.optionalAttrs (config.allowAliases or true) (with self; {
  # aliases
  gitAnnex = git-annex;
  svn_all_fast_export = svn-all-fast-export;
});
in
  self